html2pdf.js 在ios设备中打印空白pdf

问题描述 投票:0回答:2
function downloadPDF(){
    apply_print_style();

    var element = document.getElementById('LIMS_ROI_calculator');
    var opt = {
    margin:       0.2,
    filename:     'LIMS_ROI_calculator.pdf',
    pagebreak: { mode: ['avoid-all', 'css', 'legacy'], before:'#page_02',},
    jsPDF:{ unit: 'in', format: 'a3', orientation: 'portrait' }
    };

    // New Promise-based usage:
    html2pdf().set(opt).from(element).save();
}

html2pdf.js 在 ios 设备中打印空白 pdf

javascript html2pdf
2个回答
0
投票

尝试:

 setTimeout(function() {
    html2pdf().set(opt).from(element).save();
  }, 1000);

或:

document.addEventListener("DOMContentLoaded", function() {
  // call html2pdf() here
}

还有:

jsPDF: { unit: 'in', format: 'a4', orientation: 'portrait' }

尝试 a4 与 a3


0
投票

这是图书馆的一个已知问题。原因是 html2pdf.js 在转换为 pdf 之前将所有内容渲染到单个 html canvas 元素。如果文档的大小超出了浏览器对 html canvas 元素大小的限制,则 pdf 最终会变成空白。

这是所有设备和浏览器上的问题,但在 iOS 上尤其明显,因为 iOS 的画布大小限制较小。

您可以使用 html3pdf,它是 html2pdf.js 的一个分支,修复了一些错误,包括这个。 html3pdf 在自己的画布上渲染每个页面,因此您可以拥有的页面数量没有限制(尽管速度较慢)。

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