【问题标题】:creating a PDF via google apps script but creates the PDF with an additional blank page通过谷歌应用程序脚本创建 PDF,但创建带有额外空白页的 PDF
【发布时间】:2018-01-07 00:19:33
【问题描述】:

我有一个绑定到电子表格的应用程序脚本,该电子表格从工作表创建一个 pdf 文件。这将创建一个单页 pdf 并将其保存在驱动器的文件夹中。直到最近,这一切都很好。现在,每次我运行代码时,它都会执行应有的操作,但文件的第二页是空白的。当我通过 file/download as/pdf doc 手动创建 pdf 时,它会按原样创建 pdf,只有一页。我已经对脚本临时创建的原始副本和副本进行了尝试。两者都在手动完成时工作。我正在寻找一些关于可能出了什么问题以及需要改变什么的建议。下面是代码示例:

function makePDF() {

  var sheet1 = SpreadsheetApp.getActive().getSheetByName('eTimesheet');
  var sheet2 = SpreadsheetApp.getActive().getSheetByName('Time Sheet');
  var sheet3 = SpreadsheetApp.getActive().getSheetByName('Data');
  var triggercell3 = sheet1.getRange('M33').getValue();

  if (triggercell3 == 'GO'){


  var techNumber = sheet3.getRange('B5').getValue();
  var date = sheet3.getRange('B3').getValue();
  var fileID = sheet3.getRange('B7').getValue(); 
  var pdfName = "TimeSheet- "+ techNumber + " " + date

  var ss = SpreadsheetApp.getActive();
  var folder = DriveApp.getFolderById(fileID);

  sheet2.showSheet();
  sheet1.hideSheet();
//Copy whole spreadsheet
  var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(ss.getId()).makeCopy("tmp_convert_to_pdf", folder))

//save to pdf
  var theBlob = destSpreadsheet.getBlob().getAs('application/pdf').setName(pdfName);
  var newFile = folder.createFile(theBlob);

  DriveApp.getFileById(destSpreadsheet.getId()).setTrashed(true); 

  sheet1.showSheet();
  sheet2.hideSheet();
  sheet1.getRange('M33').clearContent();

  }
}

感谢您的帮助...

【问题讨论】:

    标签: pdf google-apps-script google-sheets


    【解决方案1】:

    没有示例,我的第一个问题是...如果您从工作表中删除几行并运行脚本,您会回到 1 页吗?

    我问的是问题是否只是边距设置。如果这是问题所在,也许您可​​以调整行或使用 UrlFetchApp.fetch 方法,因为可以指定 PDF 页面格式(例如:边距大小)。

    【讨论】:

    • 我已尝试更改页边距。问题依然存在。我不确定发生了什么变化,因为我已经运行了一段时间,并且它总是根据我的需要生成一个页面。我没有更改受影响的工作表上的任何内容。
    • Google 处理 .getAs PDF 的方式可能发生了一些变化。您是否也尝试删除一堆行(只是为了证明即使是明显更小的工作表也会打印和额外的空白页。如果这解决了问题,我很乐意分享一些允许设置页面大小、缩放、和 PDF 的边距。
    • 这里的好例子:andrewroberts.net/2017/03/….
    • 感谢您的回复。我删除了这张表并复制了一张新的,现在可以正常工作了。
    猜你喜欢
    • 2016-05-28
    • 2015-10-02
    • 1970-01-01
    • 2010-12-10
    • 2018-03-03
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多