【问题标题】:jspdf - last paragraph line is being cutjspdf - 最后一段行被剪切
【发布时间】:2023-08-03 03:21:01
【问题描述】:

我正在使用jspdf library 从 html 生成 PDF 文件。这真的很好。但我对 pdf 每一页的最后一行有疑问。

这是DEMO 和我的javascript:

var pdf = new jsPDF();
$('#generatePdfBtn').click(function () {
    pdf.fromHTML($('#printableContent').html(), 15, 15, {
        'width': 400
    });
    pdf.save('myPdf.pdf');
});

当您通过单击按钮生成 pdf 时,您会看到在第一页的末尾我们有“pararaph 30”,通常在 pdf 的下一页我们应该看到下一个“pararaph 31”段落。但我没有看到它,而是看到“第 32 段”。为什么最后一行丢失了?请问有什么想法吗?

【问题讨论】:

  • 只是一个想法:为什么不使用打印命令,然后用户可以选择另存为 pdf。所有浏览器都支持。快速简单。您可以只打印可打印的内容。
  • 我试过了,但这不是一个好主意,因为那里的页面没有正确显示。
  • 您是否尝试使用@media print css 仅显示可打印内容并调整 css 值或有其他问题
  • 是的,我试过了,但又出现了问题,需要很长时间才能解决。

标签: javascript jquery html pdf jspdf


【解决方案1】:

试试这个:

打开您的 jspdf.jsjspdf.debug.js 本地文件并修改:

this.pdf.internal.getVerticalCoordinateString(this.y), style.color, "Td");

删除style.color并另存为:

this.pdf.internal.getVerticalCoordinateString(this.y), "Td");

然后它可以在 firefox 和 chrome 上正常运行。至少这对我有用,这是一个解决方案,直到他们解决了这个故障。

【讨论】:

    【解决方案2】:

    有一个技巧,如果你能确定,你需要在哪里放置分页符,那么你可以简单地在哪里放置一个"" 来强制它。这样可以避免文字被截断。

    工作演示: http://jsfiddle.net/nq361uoz/4/

    不幸的是,这是jsPDF 中的一个已知错误,在GitHub 存储库中仍处于open 状态。

    更多信息在这里: https://github.com/MrRio/jsPDF/issues/555

    希望这会有所帮助!

    【讨论】:

    • 是的,如果您输入“”,我发现它正在工作,但在我的情况下,我有动态内容,它可以越来越短。我不知道页面需要在哪里被打破。 @大卫R
    • 我刚刚发现添加这个<!-- ADD_PAGE --> 也会添加一个中断并且内容正在移动到下一页。但我想知道如何以动态方式做到这一点。 @大卫R
    【解决方案3】:

    我猜它剪断了这条线,因为它不是写在页边空白内。最简单的方法是创建一个循环,即每 31 行重复一次。不是最好的解决方案,但最快。

    【讨论】:

      最近更新 更多