谷歌应用程序脚本创建的文件不是PDF

谷歌应用程序脚本创建的文件不是PDF,pdf,google-apps-script,Pdf,Google Apps Script,我正在尝试使用以下代码创建PDF文件: var name = "test.pdf"; var url = 'https://docs.google.com/spreadsheets/d/' + newSpreadsheetID + '/export?exportFormat=pdf&format=pdf' + '&size=A4' + '&portrait=true' + '&fitw=true' + // fit to width

我正在尝试使用以下代码创建PDF文件:

var name = "test.pdf";
  var url = 'https://docs.google.com/spreadsheets/d/' + newSpreadsheetID + '/export?exportFormat=pdf&format=pdf' +
  '&size=A4' + 
  '&portrait=true' + 
  '&fitw=true' +       // fit to width, false for actual size
  '&sheetnames=false&printtitle=false&pagenumbers=false' +
  '&gridlines=false' + 
  '&fzr=false' +       // do not repeat frozen rows on each page
  '&gid='+SheetID;       //the sheet's Id

  var pdf = UrlFetchApp.fetch(url);
  var pdf = pdf.getBlob().setName(name);

  DocsList.createFile(pdf);

这段代码创建了一个文件,但该文件只包含纯文本,你们能帮我把它转换成PDF格式吗?

首先,DocsList被弃用()。所以我认为这次我们应该使用DriveApp

我忽略了用于格式化pdf的参数,脚本可以简单地如下所示-

var sheet = DriveApp.getFileById(spreadsheetId);
DriveApp.createFile(sheet.getAs("application/pdf"));

如果您需要更详细的说明,请告诉我。:)

我做了一些更改,让您的电话正常工作。我不知道导出设置的文档在哪里,但其中一些不起作用,例如“网格线”。下面是一个两行的例子

function makePDF(){

var newSpreadsheetID = SpreadsheetApp.getActive().getId()
var SheetID="Sheet1";

var name = "test.pdf";
  var url = 'https://docs.google.com/spreadsheets/d/' + newSpreadsheetID + '/export?exportFormat=pdf&format=pdf'; +
  '&size=A4' + 
  '&portrait=true' + 
  '&fitw=true' +       // fit to width, false for actual size
  '&sheetnames=false&printtitle=false&pagenumbers=false' +
  '&gridlines=false' + 
  '&fzr=false'; +       // do not repeat frozen rows on each page
  '&gid='+SheetID;       //the sheet's Id

var pdf = UrlFetchApp.fetch(url,{headers: {authentication:"Bearer " + ScriptApp.getOAuthToken()}, muteHttpExceptions:true}).getBlob();
  pdf.setName(name);
DriveApp.createFile(pdf);

}

function simplePDFConvert(){
     var ss = SpreadsheetApp.openById( spreadSheetId );
     DriveApp.createFile(ss.getBlob());
}

那么它是创建一个.txt文件还是.pdf文件呢?它在Google drive中显示为.pdf,但它只有一个蓝色图标,当我打开它时,它包含了很多文本。文本文件包含一个可以工作的HTML文件,但我用这个解决方案得到了网格线。我怎样才能摆脱这些呢?:)