导出为PDF

时间:2016-03-10 06:57:06

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

我有这个脚本,定期通过电子邮件将speadsheet的内容发送给所有合作者。

function myFunction() {
  var document = SpreadsheetApp.openById("123documentid456");

  var editors = document.getEditors();
  for(var i = 0; i < editors.length; i++){
    MailApp.sendEmail(editors[i].getEmail(), "Subject", "Some message", {
      attachments : [document.getAs(MimeType.PDF)]
    });
  }
}

它会创建一个PDF并通过电子邮件发送给它。事情是内容不能很好地显示,因为PDF的方向是肖像。有没有办法让它出口到景观?

1 个答案:

答案 0 :(得分:2)

here开始,此代码可以提供帮助

*************************************************

function savePDFs() {
  SpreadsheetApp.flush();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();

  var url = ss.getUrl();

  //remove the trailing 'edit' from the url
  url = url.replace(/edit$/,'');

  //additional parameters for exporting the sheet as a pdf
  var url_ext = 'export?exportFormat=pdf&format=pdf' + //export as pdf
  //below parameters are optional...
  '&size=letter' + //paper size
  '&portrait=false' + //orientation, false for landscape, true for portrait
  '&fitw=true' + //fit to width, false for actual size
  '&sheetnames=false&printtitle=false&pagenumbers=false' + //hide optional headers and footers
  '&gridlines=false' + //hide gridlines
  '&fzr=false' + //do not repeat row headers (frozen rows) on each page
  '&gid=' + sheet.getSheetId(); //the sheet's Id

  var token = ScriptApp.getOAuthToken();

  var response = UrlFetchApp.fetch(url + url_ext, {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });

  var blob = response.getBlob().setName(sheet.getName() + '.pdf');

  //from here you should be able to use and manipulate the blob to send and email or create a file per usual.
  //In this example, I save the pdf to drive

  DocsList.createFile(blob);
  //OR DriveApp.createFile(blob);
}

*************************************************

注意这一点:'&portrait=false' + //orientation, false for landscape, true for portrait