weasyprint呈现包含不完整文本的PDF文件

时间:2016-12-15 14:52:22

标签: python pdf debian virtualenv weasyprint

我正在使用python中的weasyprint库来呈现各种房地产广告的PDF传单。但是,渲染文件中的某些文本缺少整个句子的部分。

文本是捷克语。例如,输入文字:“Zrekonstruovanýajižněorientovanýbytve3.nadzemnímodlažíbytovéhodomsvýtahem。”

以PDF格式呈现文字:“Zrekonstruovaný,jižněvýtahem。”。所以,它错过了句子的中间部分。

删除特殊字符(ěščřžýáíé)后,这个特定句子会呈现正常,但这不是一个通用规则,因为即使使用这些字符,其他文本也可以呈现。

我无法找到发生这种情况的任何规则。此外,这只发生在我们在Debian上运行的生产服务器上。在我当地的Kubuntu上渲染运行得很好。

使用weasyprint v 0.31和0.33在虚拟环境中运行测试,其中只安装了weasyprint及其依赖项。

我很高兴有任何提示,谢谢。

1 个答案:

答案 0 :(得分:0)

可能的解决方法是在服务器上安装LibreOffice,它可以在没有GUI的情况下运行,并且非常适合将文档转换为pdf。您可以安装最小版本并查看它是否有效 - 如果它不能与最小安装一起使用,那么您可以安装一些额外的推荐软件包甚至完整版本。以下命令将安装最小版本:

apt-get --no-install-recommends install libreoffice

如果安装了LibreOffice,则可以使用以下命令创建PDF:

libreoffice --invisible --convert-to pdf /folder/document.docx --outdir /destination/folder/

我希望有所帮助!