我的工具代码将内容转换为图像
我正在尝试使用 JavaScript 将 HTML 和 CSS 转换为 PDF 文件,但我当前使用 html2pdf 的实现将内容转换为图像,这使得 PDF 不可搜索和不可选择。有人可以给我一些解决方案来解决这个问题吗?
window.onload = function () {
document.getElementById("download").addEventListener("click", () => {
const allvoice = document.getElementById("allvoice");
var opt = {
margin : [20,0],
filename: 'myfile.pdf',
image: { type: 'png', quality: 0.98 },
html2canvas: {
scale: 2,
logging: true,
dpi: 192,
letterRendering: true
},
jsPDF: {
unit: 'mm',
format: 'a4',
orientation: 'landscape',
},
pagebreak: { mode: ['avoid-all', 'css', 'legacy'] }
};
html2pdf().from(allvoice).set(opt).toPdf().get('pdf').then(function(pdf) {
var totalPages = pdf.internal.getNumberOfPages();
for (i = 1; i <= totalPages; i++) {
pdf.setPage(i);
pdf.setFontSize(10);
pdf.setTextColor(100);
pdf.text('Page ' + i + ' of ' + totalPages, (pdf.internal.pageSize.getWidth() / 2.3), (pdf.internal.pageSize.getHeight() - 0.8));
}
}).save();
});
}
我正在使用 EKOOPMANS 的 html2pdf
没有。
如果您在文档中查找此内容,则在已知问题下有一行:
渲染为图像:html2pdf.js 将所有内容渲染为图像,然后 将该图像放入 PDF 中。这意味着文本不可选择或 可搜索,并导致文件大小过大。这是目前 这是不可避免的,但是 jsPDF 最近的改进意味着它可能 很快就可以直接渲染成矢量图形。