【GAS】スプレッドシートを1ページのPDFに収めてPDF化する方法

  • 2022.02.23
  • GAS
【GAS】スプレッドシートを1ページのPDFに収めてPDF化する方法

GASで、スプレッドシートをPDF化する記事は大量に存在しましたが、一枚のシートを1ページのPDFに収めるようにサイズを調整してPDF化する方法の記事があまりなかったので記載しておきます。

その他のサイトと同様にまず、スプレッドシートの特定のシートをPDF化するには下記のように記載します。ただし、下記のようにするとシートの内容が途中で改ページ(次のページにいく)されてしまいます。

function createPdf(){
  var folderId = "フォルダーID"; //ここにPDFを格納するフォルダIDを入れる

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ssId = ss.getId(); //スプレッドシートのIDを取得する
 //PDF化するシートのタブ名の部分に実際のタブ名を入れて対象のシートのIDを取得する
  var shId = ss.getSheetByName("PDF化するシートのタブ名").getSheetId();

  var fileName = "テストファイル";  //PDFのファイル名
  
   var baseUrl = "https://docs.google.com/spreadsheets/d/" +  ssId + "/export?gid=" + shId;
 
  var options = "&exportFormat=pdf&format=pdf"
              + "&size=A4" //用紙サイズ (A4)
              + "&portrait=true"  //用紙の向き true: 縦向き / false: 横向き
              + "&fitw=true"  //ページ幅を用紙にフィットさせるか true: フィットさせる / false: 原寸大
              + "&top_margin=0.50" //上の余白
              + "&right_margin=0.50" //右の余白
              + "&bottom_margin=0.50" //下の余白
              + "&left_margin=0.50" //左の余白
              + "&horizontal_alignment=CENTER" //水平方向の位置
              + "&vertical_alignment=TOP" //垂直方向の位置
              + "&printtitle=false" //スプレッドシート名の表示有無
              + "&sheetnames=false" //シート名の表示有無
              + "&gridlines=false" //グリッドラインの表示有無
              + "&fzr=false" //固定行の表示有無
              + "&fzc=false" //固定列の表示有無;

  var url = baseUrl +options;

}

そこで、一枚のシートを1ページのPDFに収めるためにはscaleというオプションを使います。

function createPdf(){
  var folderId = "フォルダーID"; //ここにPDFを格納するフォルダIDを入れる

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ssId = ss.getId(); //スプレッドシートのIDを取得する
 //PDF化するシートのタブ名の部分に実際のタブ名を入れて対象のシートのIDを取得する
  var shId = ss.getSheetByName("PDF化するシートのタブ名").getSheetId();

  var fileName = "テストファイル";  //PDFのファイル名
  
   var baseUrl = "https://docs.google.com/spreadsheets/d/" +  ssId + "/export?gid=" + shId;
 
  var options = "&exportFormat=pdf&format=pdf"
              + "&size=A4" //用紙サイズ (A4)
              + "&portrait=true"  //用紙の向き true: 縦向き / false: 横向き
              + "&fitw=true"  //ページ幅を用紙にフィットさせるか true: フィットさせる / false: 原寸大
              + "&top_margin=0.50" //上の余白
              + "&right_margin=0.50" //右の余白
              + "&bottom_margin=0.50" //下の余白
              + "&left_margin=0.50" //左の余白
              + "&horizontal_alignment=CENTER" //水平方向の位置
              + "&vertical_alignment=TOP" //垂直方向の位置
              + "&printtitle=false" //スプレッドシート名の表示有無
              + "&sheetnames=false" //シート名の表示有無
              + "&gridlines=false" //グリッドラインの表示有無
              + "&fzr=false" //固定行の表示有無
              + "&fzc=false" //固定列の表示有無
              + "&scale=4";   //【この行を追加!!】

  var url = baseUrl +options;

}

scaleが4の場合はページに合わせてPDF化するという意味になります。ちなみに他に1 ~ 3がありますが、1が100%のサイズ(拡大縮小なし)、2が横幅に合わせる、3が高さに合わせるという意味になります。

また、スプレッドシートを丸ごとPDF化する方法についてはこちらをご覧ください

試してみてください。

GASカテゴリの最新記事