Google Apps Script PDF自适应页面

3

我正在使用一个脚本来创建一个PDF文件并保存它。除了我不知道如何使它“适合整个页面”之外,一切都很好。下面的代码是用于“适应宽度”(fitw=true),这在许多地方都有描述,但我找不到如何适应整个页面的方法。

function savePdf(spreadsheetId, sheetName, pdfName, pdfFolderId) {
  
  var sheetId = spreadsheetId.getSheetByName(sheetName).getSheetId();
  var url_base = spreadsheetId.getUrl().replace(/edit$/,'');
  
  var url_ext = 'export?exportFormat=pdf&format=pdf'
  + '&gid=' + sheetId
  // following parameters are optional...
  + '&range=D4:AX74'
  + '&size=A4'      // paper size: legal / letter / A4
  + '&portrait=false'    // orientation, false for landscape
  + '&fitw=true'        // fit to width, false for actual size
  + '&top_margin=0.50'
  + '&bottom_margin=0.50'
  + '&left_margin=0.50'
  + '&right_margin=0.50'
  + '&sheetnames=false' // 
  + '&printtitle=false'
  + '&pagenumbers=false'  //hide optional headers and footers
  + '&gridlines=false'  // hide gridlines
  + '&fzr=true';       // false = do not repeat row headers (frozen rows) on each page
  var url_options = {headers: {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),}};
  var response = UrlFetchApp.fetch(url_base + url_ext, url_options);
  var blob = response.getBlob().getAs('application/pdf').setName(pdfName + '.pdf');
  var folder = DriveApp.getFolderById(pdfFolderId);
  folder.createFile(blob);
}


你能分享一份电子表格副本吗?否则我无法看到在你的情况下结果是什么样子。 - Jescanellas
当然,我刚刚创建了一个文档:https://docs.google.com/spreadsheets/d/1nCK_681Vf4DMBrwp-cuOWhhWRJfwh669ICVsN4_VTfM/edit?usp=sharing - Simon Gade
3个回答

6

我找到了一个解决方案! 它是添加 + '&scale=' + scale
// 1 = 正常 100% -- 2 = 适合宽度 -- 3 = 适合高度 -- 4 = 适合页面


谢谢!尺度选项运作得非常好,虽然它没有被记录在文档中。 - Lye Heng Foo
我尝试了缩放选项,但它没有将PDF适配到页面大小。 - user12736831
更糟糕的是:我刚花了很多时间试图弄清楚为什么导入到单元格中的图像在我制作的PDF中没有出现,尽管它们在工作表中显示。我追踪到这个建议;我太愚蠢了,没有注意到问题一开始就出现了。一旦我从URL中删除了“&scale = 4”,图片就重新出现在PDF中了。 - Atiq Zabinski

1
这应该可以实现:
&horizontal_alignment=CENTER

0

fitw参数应该按预期工作,但我发现了一个问题的报告,我也遇到了这个问题。使用或不使用它都没有任何区别。

您可以点击问题编号旁边的星号以接收更新并为错误赋予更高的优先级。


1
fitw 对我来说很好用 - 但那是适合宽度的 - 我正在寻找适合页面的。 - Simon Gade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接