在Google Apps脚本中格式化PDF附件(MailApp.sendEmail)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Google Apps脚本中格式化PDF附件(MailApp.sendEmail)相关的知识,希望对你有一定的参考价值。

我设置了一个脚本,将Google表格中的办公室联系人列表转换为PDF,并每月将其作为附件通过电子邮件发送到列表中。我正在试图弄清楚如何将PDF格式化为横向并删除网格线并且没有成功。我对脚本比较陌生,所以我肯定我错过了什么。这是我的代码。我很感激任何建议。谢谢!

function EmailSpreadsheetAsPDF() {
  
 var file = DriveApp.getFileById('xxxxx_spreadsheet_key_xxxxx');
  
 var formattedDate = Utilities.formatDate(new Date(), "GMT-7", "MMMM yyyy");
  Logger.log(formattedDate);
  
 var email = "xxxxx@xxxxx.xxx";
  
 var subject = "Contact List - " + formattedDate;
  
 var body = "Attached is the current contact list for " + formattedDate + "." + "

Please email xxxxx@xxxxx.xxx with any corrections or updates.";
  
 MailApp.sendEmail(email, subject, body, {
     name: 'xxxxx',
     attachments: [file.getAs(MimeType.PDF)]
 });
}
答案

对的,这是可能的。但是,您必须为此目的使用UrlFetchApp。如图所示here(阅读文章#89),您可以使用以下命令将网格线可见性设置为false,同时将文件导出为PDF:

var pdfBlob = UrlFetchApp.fetch("https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key="
               +docKey
               +"&exportFormat=pdf&gid="
               +printSheetIndex
               +"&gridlines=false&printtitle=false&size=A4&sheetnames=false&fzr=true&portrait="
               +portraitInd
               +"&fitw=true"
               , requestData).getBlob().setName(docName);

阅读提供的链接以获取更多详细信息。

以上是关于在Google Apps脚本中格式化PDF附件(MailApp.sendEmail)的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Apps 脚本删除 Gmail 电子邮件的附件

如何通过 Apps 脚本在 Google 表格中“清除格式”

Google Apps 脚本:从 .txt 文件中读取文本

Google Apps 脚本中数字的格式范围

仅在Google Apps脚本中是新文件时才解压缩文件

使用Google应用脚本从PDF到文本转换获取文本