You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Google Apps Script生成PDF的默认页面尺寸为A5?

解决Google Sheets生成PDF时将页面尺寸改为A5的问题

要把生成的PDF从Letter尺寸改成A5,不能直接用getBlob()方法(这个方法会沿用表格默认的页面设置),需要通过Google Sheets的导出API自定义页面参数。以下是修改后的完整代码:

function PrintPDF(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();    
  var shtSB = ss.getSheetByName("SALES-BILL");
  var shtSD = ss.getSheetByName("SALES-DATA");
  var LastRow = shtSD.getRange(5007,2).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
  var sales = shtSD.getRange(5007,2,LastRow - 5006,2).getValues(); // 修正原范围计算错误
  
  // 获取表格ID和目标工作表的gid
  var ssId = ss.getId();
  var sheetId = shtSB.getSheetId();
  var folder = DriveApp.getFoldersByName("Sales Inv").next();

  for (var i = 0;i < sales.length;i++){
    shtSB.getRange("H8").setValue(sales[i][0]);
    // 优化文件名格式,添加空格提升可读性
    var fileName = "SALES-BILL #" + sales[i][1] + " for " + sales[i][0];
    shtSD.hideSheet();

    // 构建PDF导出URL,指定A5尺寸
    var url = "https://docs.google.com/spreadsheets/d/" + ssId + "/export?" +
              "format=pdf" +
              "&gid=" + sheetId +
              "&size=A5" + // 设置页面尺寸为A5
              "&portrait=true" + // 纵向排版,需横向则改为false
              "&fitw=true" + // 适应页面宽度
              "&sheetnames=false&printtitle=false&pagenumbers=false" + // 隐藏不必要元素
              "&gridlines=false&fzr=false"; // 隐藏网格线和冻结行

    // 获取OAuth令牌用于权限验证
    var token = ScriptApp.getOAuthToken();
    var options = {
      headers: {
        'Authorization': 'Bearer ' + token
      }
    };

    // 请求获取PDF blob
    var response = UrlFetchApp.fetch(url, options);
    var pdfBlob = response.getBlob().setName(fileName);

    folder.createFile(pdfBlob);
    shtSD.showSheet();
  }
}

关键修改说明:

  • 替换原getBlob()生成PDF的逻辑,改用Google Sheets导出API,通过size=A5参数强制指定页面尺寸
  • 修正原代码中数据范围的计算错误(原LastRow-1会导致范围偏移,改为LastRow - 5006匹配起始行5007的范围)
  • 优化文件名格式,避免文本连在一起影响可读性
  • 隐藏PDF中的工作表名称、页码、网格线等无关元素,让发票排版更简洁

可选参数调整:

  • 若需要横向排版,将&portrait=true改为&portrait=false
  • 不需要适应页面宽度时,可将&fitw=true改为&fitw=false

内容的提问来源于stack exchange,提问作者Anmol Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 20:45:53