寻求将 HTML 代码转换为 PDF 的解决方案

问题描述 投票:0回答:1

我的工具代码将内容转换为图像

我正在尝试使用 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

javascript html css jspdf
1个回答
0
投票

没有。

如果您在文档中查找此内容,则在已知问题下有一行:

渲染为图像:html2pdf.js 将所有内容渲染为图像,然后 将该图像放入 PDF 中。这意味着文本不可选择或 可搜索,并导致文件大小过大。这是目前 这是不可避免的,但是 jsPDF 最近的改进意味着它可能 很快就可以直接渲染成矢量图形。

来源

© www.soinside.com 2019 - 2024. All rights reserved.