我使用xhtml2pdf Python包生成PDF。输出不是最佳的。我使用浮动div来在页面上放置图像和文本。在HTML中,这可以工作,但在PDF渲染之后,图像和文本放在彼此之下,这不是我想要的。通过浏览网页,我了解到xhtml2pdf使用的Report Lab软件包无法处理浮动div。是否存在变通方法?我已经通过QT尝试了webkit渲染,但生成的PDF质量很差,即字符间距完全错误。
答案 0 :(得分:1)
如果您无法使用xhtml2pdf获得所需的结果,我建议您直接使用ReportLab。 ReportLab包含对RML的支持,ReportLabs拥有的标记语言可以让您轻松创建格式化文本,并且有一个名为Platypus的支持库,使用Python对象来表示文档部分和页面布局,使布局变得相当简单。
顺便提一下,你遇到问题的原因是xhtml2pdf必须像HTML渲染引擎那样直接输出到PDF而不是屏幕。由于为浏览器制作好的渲染引擎花费了很长时间和很多努力,因此,似乎xhtml2pdf需要花费很多精力才能使其具有相似的质量。这并不是说xhtml2pdf是坏的,只是它需要时间才能在浏览器中渲染,如果PDF输出本身就是你真正感兴趣的东西,我认为使用ReportLab直接是一个更好的选择。