通过谷歌应用程序脚本创建PDF,但创建PDF与另一个空白页面

时间:2018-01-06 05:15:31

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

我有一个应用程序脚本绑定到电子表格,该表格从工作表创建pdf文件。这将创建一个单页pdf并将其保存在驱动器中的文件夹中。直到最近,这完美地运作。现在,每次运行代码时,它都会执行它应该执行的操作,但文件的第二页是空白的。当我通过文件/下载手动创建pdf作为/ pdf doc时,它只应该创建一个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();

  }
}

感谢您的帮助......

1 个答案:

答案 0 :(得分:0)

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

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