在使用Gloogle Apps Script Blob创建的pdf中显示图像

问题描述 投票:0回答:1

我正在使用HTML代码中的Google Apps脚本中的blob创建PDF文件,但问题是HTML代码有一个图像(由“http”引用),但创建的pdf无法显示它。

这是我的代码

function createBlobPDF(myMessage,myTitle){
var blobHTML = Utilities.newBlob(myMessage, "text/html", myTitle+ ".html");
var myPDF = blobHTML.getAs("application/pdf");
return myPDF;
}

有解决方案吗谢谢!!

image pdf google-apps-script blob
1个回答
0
投票

如果HTML中的图像是从URL加载的,则转换后的PDF文件不包含图像。如果要将图像包含在转换后的PDF文件中,请将图像作为base64数据放入HTML。

为了确认这种情况,请参阅以下示例脚本。此示例脚本将图像作为URL和base64数据。结果将它们显示在对话框中并创建PDF文件。

使用此脚本时,请复制并粘贴到Spreadsheet的脚本编辑器。

Sample script :

function myFunction() {
  // image
  var url = "https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a";
  var blob = UrlFetchApp.fetch(url).getBlob();
  var b64 = blob.getContentType() + ';base64,'+ Utilities.base64Encode(blob.getBytes());
  var html = "URL<img src=\"" + url + "\">Base64<img src=\"data:" + b64 + "\">";
  var h = HtmlService.createHtmlOutput(html);

  // Open dialog with the images.
  SpreadsheetApp.getUi().showModalDialog(h.setWidth(500).setHeight(200), 'Sample');

  // Create from HTML to PDF file.
  DriveApp.createFile(h.getAs("application/pdf").setName("text.pdf"));
}

Result of dialog :

两个图像都可以看到。

enter image description here

Result of PDF file :

只能看到base64的图像。

enter image description here

Note :

  • 这是一个简单的脚本。所以请根据您的环境进行修改。

References :

如果我误解你的问题,我很抱歉。

© www.soinside.com 2019 - 2024. All rights reserved.