簡體   English   中英

谷歌表格 - 將圖表圖像從表格插入到附加的 PDF

[英]Google Sheet - Insert chart image from sheet to attached PDF

您好,我正在嘗試在發送 email 時將我的圖表從另一張表附加到 PDF 附件。 從另一張紙上獲取圖像時,我仍然不知道如何使用 HTML 中的圖像源。

在將圖像附加到 email 主體時,我使用inlineImages:{image: img}<img src='cid:image'> ,但與 PDF 一起使用時它不起作用。

function pdfSend() {
  const id = <sheet id>;
  const ss = SpreadsheetApp.openById(id);
  //const ss = SpreadsheetApp.getActive();
  const sheet = ss.getSheetByName('Employee Report');
  const data = sheet.getDataRange().getValues().slice(1);

  const gs = ss.getSheetByName('Graph');
  var chart = gs.getCharts();
  var img = chart[0].getAs("image/png");

  data.forEach((row, i)=> {
    let email = row[1];

    if (email != "" ) {
      let html = `<h1>Hello ${row[0]}</h1>`;
      html += `<div>Is your email correct? ${row[1]}</div>`;
      html += "<br><p align='center'><imgsrc='???'>/</p> <br><br>";
      const blob = Utilities.newBlob(html,MimeType.HTML);
      blob.setName(`${row[0]}.pdf`);
      const subject = 'Example PDF';
      MailApp.sendEmail({
        to: email,
        subject: subject,
        htmlBody: html,
        attachments:[blob.getAs(MimeType.PDF)]
      });

      sheet.getRange(i+2,4).setValue('Sent');
    }
  });
}

我相信你的目標如下。

  • 您希望將var img = chart[0].getAs("image/png")包含到 email 附件文件的 PDF 文件中。

在這種情況下,如何進行以下修改?

修改后的腳本:

function pdfSend() {
  const id = "<sheet id>";
  const ss = SpreadsheetApp.openById(id);
  //const ss = SpreadsheetApp.getActive();
  const sheet = ss.getSheetByName('Employee Report');
  const data = sheet.getDataRange().getValues().slice(1);

  const gs = ss.getSheetByName('Graph');
  var chart = gs.getCharts();

  var img = `data:image/png;base64,${Utilities.base64Encode(chart[0].getAs("image/png").getBytes())}`; // Modified

  data.forEach((row, i) => {
    let email = row[1];

    if (email != "") {
      let html = `<h1>Hello ${row[0]}</h1>`;
      html += `<div>Is your email correct? ${row[1]}</div>`;

      html += `<br><p align='center'><img src='${img}'>/</p> <br><br>`; // Modified

      const blob = Utilities.newBlob(html, MimeType.HTML);
      blob.setName(`${row[0]}.pdf`);
      const subject = 'Example PDF';
      MailApp.sendEmail({
        to: email,
        subject: subject,
        htmlBody: html,
        attachments: [blob.getAs(MimeType.PDF)]
      });

      sheet.getRange(i + 2, 4).setValue('Sent');
    }
  });
}
  • 在此修改中,圖表作為數據 URL 包含在img標簽中。

參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM