我在使用jspdf将svg元素渲染为pdf时遇到了麻烦.我使用插件https://github.com/CBiX/svgToPdf.js/来做到这一点.
以下是我的代码
// I recommend to keep the svg visible as a preview
var tmp = document.getElementById("chartContainer");
var svgDoc = tmp.getElementsByTagName("svg")[0];
var pdf = new jsPDF('p', 'pt', 'a4');
svgElementToPdf(svgDoc, pdf, {
scale: 72 / 96, // this is the ratio of px to pt units
removeInvalid: false // this removes elements that could not be translated to pdf from the source svg
});
pdf.output('datauri'); // use output() to get the jsPDF buffer
Run Code Online (Sandbox Code Playgroud)
它正在生成空白pdf.请帮忙
我正在使用 jsPDF 从画布创建 PDF 文件。问题是,创建的文件太大。
我曾经将数据从画布获取到 PNG,然后将 PNG 数据粘贴到 PDF 中。如果我以这种方式创建文件,它有 4.0MB
我发现了关于这个问题的问题: How to reduce the file size created by JSPDF?
我根据那里的答案重写了我的代码。所以现在我使用 JPEG 而不是 PNG:
var imgData = canvas.toDataURL({
format: 'jpeg',
quality: 0.2
});
var doc = new jsPDF('p', 'mm', "A4");
doc.addImage(imgData, 'JPEG', 10, 10, 190, 190);
doc.save('mandala.pdf');
Run Code Online (Sandbox Code Playgroud)
但是文件仍然有 4.0MB,我为“imgData”设置的质量无关紧要。
有没有办法减小尺寸?或者 4.0 MB 是我能得到的最小的?
我正在尝试使用 html2canvas 生成 PDF,但是在调用该函数时抛出错误,我的 TS 如下:
@ViewChild('content') content:ElementRef;
generarPDF() {
html2canvas(document.getElementById('content'), {
// Opciones
allowTaint: true,
useCORS: false,
// Calidad del PDF
scale: 1
}).then(function(canvas) {
var img = canvas.toDataURL("image/png");
var doc = new jsPDF();
doc.addImage(img,'PNG',7, 20, 195, 105);
doc.save('postres.pdf');
});
}
Run Code Online (Sandbox Code Playgroud)
我的html是:
@ViewChild('content') content:ElementRef;
generarPDF() {
html2canvas(document.getElementById('content'), {
// Opciones
allowTaint: true,
useCORS: false,
// Calidad del PDF
scale: 1
}).then(function(canvas) {
var img = canvas.toDataURL("image/png");
var doc = new jsPDF();
doc.addImage(img,'PNG',7, 20, 195, 105);
doc.save('postres.pdf');
});
}
Run Code Online (Sandbox Code Playgroud)
div.cliente …Run Code Online (Sandbox Code Playgroud)