图像和 PDF 制作
Images & PDFMake
我目前正在使用 pdfmake 生成项目报告 pdf 的给定信息,但在显示图像时遇到了一些问题。
我有一个生成 pdfmake "object" 的函数,如下所示:
function singleProject(data) {
return {
text: "Project: \n" + data.title + \n\nImage: \n",
pageBreak: 'before'
}
}
我想在给定图像 URL(类似于 "images/sample_image.jpg")的情况下向该报告添加图像,并且根据我在其他答案中阅读的内容,我必须将其转换为基础64 格式。
另一个答案中提供了其中一个功能,但我不太清楚应该如何使用它:
function convertImgToBase64URL(url, callback, outputFormat){
var canvas = document.createElement('CANVAS'),
ctx = canvas.getContext('2d'),
img = new Image;
img.crossOrigin = 'Anonymous';
img.onload = function(){
var dataURL;
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
canvas = null;
};
img.src = url;
}
但是,我不太确定应该如何使用此函数将图像添加到提供的第一个函数中,因为它没有 return 数据 URL;如果我尝试这样的事情:
function singleProject(data) {
return {
text: "Project: \n" + data.title + \n\nImage: \n",
image: convertImgToBase64URL(data.image), //data.image is the URL so something like "images/sample_image.jpg"
width: 300,
pageBreak: 'before'
}
}
图片没有显示。
使用隐藏
<img id='imgToExport' src='someimageurl' style='display:none'/>
并在 JavaScript 中使用
var imgToExport = document.getElementById('imgToExport');
var canvas = document.createElement('canvas');
canvas.width = imgToExport.width;
canvas.height = imgToExport.height;
canvas.getContext('2d').drawImage(imgToExport, 0, 0);
canvas.toDataURL('image/png')
这样就不需要异步调用了
我目前正在使用 pdfmake 生成项目报告 pdf 的给定信息,但在显示图像时遇到了一些问题。
我有一个生成 pdfmake "object" 的函数,如下所示:
function singleProject(data) {
return {
text: "Project: \n" + data.title + \n\nImage: \n",
pageBreak: 'before'
}
}
我想在给定图像 URL(类似于 "images/sample_image.jpg")的情况下向该报告添加图像,并且根据我在其他答案中阅读的内容,我必须将其转换为基础64 格式。
另一个答案中提供了其中一个功能,但我不太清楚应该如何使用它:
function convertImgToBase64URL(url, callback, outputFormat){
var canvas = document.createElement('CANVAS'),
ctx = canvas.getContext('2d'),
img = new Image;
img.crossOrigin = 'Anonymous';
img.onload = function(){
var dataURL;
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img, 0, 0);
dataURL = canvas.toDataURL(outputFormat);
callback(dataURL);
canvas = null;
};
img.src = url;
}
但是,我不太确定应该如何使用此函数将图像添加到提供的第一个函数中,因为它没有 return 数据 URL;如果我尝试这样的事情:
function singleProject(data) {
return {
text: "Project: \n" + data.title + \n\nImage: \n",
image: convertImgToBase64URL(data.image), //data.image is the URL so something like "images/sample_image.jpg"
width: 300,
pageBreak: 'before'
}
}
图片没有显示。
使用隐藏
<img id='imgToExport' src='someimageurl' style='display:none'/>
并在 JavaScript 中使用
var imgToExport = document.getElementById('imgToExport');
var canvas = document.createElement('canvas');
canvas.width = imgToExport.width;
canvas.height = imgToExport.height;
canvas.getContext('2d').drawImage(imgToExport, 0, 0);
canvas.toDataURL('image/png')
这样就不需要异步调用了