我正在使用来自 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;
}
有什么解决办法吗?谢谢!!
如果 HTML 中的图像是从 URL 加载的,则转换后的 PDF 文件不包含图像。如果您想在转换后的 PDF 文件中包含图像,请将图像作为 base64 数据放入 HTML。
为了确认这种情况,请查看以下示例脚本。此示例脚本将图像作为 URL 和 base64 数据放置。结果显示在一个对话框中并创建了一个 PDF 文件。
使用本脚本时,请复制粘贴到电子表格的脚本编辑器中。
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"));
}
两个图像都可以看到。
只能看到base64的图像。
如果我误解了你的问题,我很抱歉。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句