我使用 xhtml2pdf Python 包生成 PDF。输出不是最优的。我使用 float div 来在页面上放置图像和文本。在 HTML 中这是有效的,但在 PDF 渲染之后,图像和文本 ar 放置在彼此的下面,这不是我想要的。通过网上冲浪,我了解到 xhtml2pdf 使用的 Report Lab 包无法处理 float div。是否存在解决方法?我已经尝试通过 QT 进行 webkit 渲染,但生成的 PDF 质量很差,即字符间距完全错误。
请您参考如下方法:
如果你用xhtml2pdf达不到你需要的结果,我建议你直接使用ReportLab。 ReportLab 包含对 RML 的支持,ReportLabs 自己的标记语言可以让您轻松创建带格式的文本,并且有一个名为 Platypus 的支持库,它使用 Python 对象来表示文档部分和页面布局,使布局相当简单。
顺便说一句,您遇到问题的原因是 xhtml2pdf 本质上必须像 HTML 呈现引擎一样输出到 PDF 而不是直接输出到屏幕。由于为浏览器制作良好的渲染引擎花费了很长时间和大量的努力,因此 xhtml2pdf 似乎也需要付出很多努力才能使其具有相似的质量。这并不是说 xhtml2pdf 不好,只是它需要时间才能像在浏览器中呈现一样好,如果您真正感兴趣的是 PDF 输出本身,我认为使用 ReportLab直接是更好的选择。
