我正在使用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文件。
使用此脚本时,请复制并粘贴到Spreadsheet的脚本编辑器。
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的图像。
如果我误解你的问题,我很抱歉。