打印html到pdf在pdfkit和weasyprint中都没有按预期工作

时间:2017-06-27 02:52:30

标签: python pdf weasyprint python-pdfkit

在上周,我一直致力于为我支持的组织自动化发票生成。该过程由3个步骤组成:

  1. 生成发票
  2. 将发票打印成pdf
  3. 发送通过电子邮件附上的发票
  4. 我在第二步遇到麻烦,我需要从发票生成模块返回的网址打印pdf。我尝试了两个不同的python模块,但都没有正确打印文档:

    I)通过浏览器打印时:这是使用整页打印html的理想结果

    enter image description here

    II)使用pdfkit:由于某种原因,pdfkit正在考虑html有一个额外的页面(2而不是1)并在同一页面中打印。我不知道它的行为就像这样。这里的图像描述

    enter image description here

    III)使用WeasyPrint进行打印:除了与pdfkit相反的效果之外,还没有工作。发票不适合页面。

    为了进一步澄清问题,发票是一个很大的html表,有很多colspan和内联样式。我想帮助理解为什么pdf表现不好以及我该怎么做才能解决它。

    class Handle extends Function {
      constructor(functor) {
        super("instance", "call", "slice", `
          "use strict";
          return Function.call.call(this, instance, ...slice.call(arguments, 3));
        `);
    
        return Function.bind
          .call(this, functor, this, Function.call, Array.prototype.slice)
      }
    }
    
    let handle = new Handle(function test() {
      console.log(this instanceof Handle, arguments.length)
    })
    
    console.log(handle instanceof Handle, handle.length)
    
    handle(1, 2, 3)

    非常感谢!

1 个答案:

答案 0 :(得分:0)

因为你使用python你可以像fpdf一样插件。 我自己尝试html和xhtml到pdf但失败了。 Fpdf插件有效。