谷歌应用程序脚本创建的文件不是PDF
我正在尝试使用以下代码创建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
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文件,但我用这个解决方案得到了网格线。我怎样才能摆脱这些呢?:)