有人能推荐一个支持OpenType(.OTF)的Python PDF生成器吗?

2024-06-18 00:03:10 发布

您现在位置:Python中文网/ 问答频道 /正文

在11月份询问了this question之后,我对ReportLab满足python pdf生成需求非常满意。在

然而,事实证明,虽然ReportLab将使用常规TrueType(TTF)字体,但它不支持OpenType(OTF)字体。在

我正在开发的一个当前的小部件需要使用一些OpenType字体,很遗憾,ReportLab刚刚从运行中删除了自己。在

有人能推荐一个与OpenType兼容的Python PDF生成器吗?在

它不需要花哨-我只需要能够把UTF-8文本放到页面上。在


更新:OpenType字体大致有两种风格:TrueType样式和PostScript样式,基于它们存储字形轮廓的方式。ReportLab只支持TypeType样式。在Windows上,你可以通过扩展名来区别:TrueType和OpenType的扩展名是.TTF,带PostScript样式的OpenType是.OTF。在

所以,我真正的问题是,有人能推荐一个支持.otf字体的PythonPDF生成器吗?在


Tags: pdf部件字体样式ttfthis常规question
0条回答
网友
1楼 · 发布于 2024-06-18 00:03:10

如果reportlab有原生OTF支持就好了,但大多数人真正需要的是一个特定OpenType字体的TrueType版本。我用这个fontforge脚本把我需要的字体转换成TrueType,得到完美的结果。在

来自http://www.se.eecs.uni-kassel.de/~thm/OpenOffice.org/bugs.html

#!/usr/bin/fontforge
# Quick and dirty hack: converts a font to truetype (.ttf)
Print("Opening "+$1);
Open($1);
Print("Saving "+$1:r+".ttf");
Generate($1:r+".ttf");
Quit(0);
网友
2楼 · 发布于 2024-06-18 00:03:10

那要看情况。。。OpenType的目的是扩展TrueType(和uses the general structure of TrueType internally),以至于有些人在reportlab中使用了reported success using OpenType fonts;我想这完全取决于字体的使用是否需要任何特殊的OTF特性。在

事实上,有些comments in the TTFontFile class source for reportlab提到了OpenType的名字,所以它可能值得一试。在


编辑:注释引用了一条错误消息,它概括了reportlab不支持OTF字体的情况。OTF字体可以以多种格式存储大纲数据(参见上面的wikipedia链接)。在本例中,字体似乎使用的是CFF格式,reportlab专门检查其字体解析器,reportlab明确拒绝了CFF格式,并显示错误消息“postscript outlines not supported”。在

这几乎结束了我的字体和PDF生成器的专业知识。对不起的!期待看到任何替代方案的建议。在


编辑2:好的,看看Django的文档,我看到它们引用了另一个完整的PDF api:pdflib。我对PDFlib没有直接的经验,而且它不是免费的(既没有价格也没有许可证)。我还发现他们的文档很烦人,因为我无法在没有下载整个bloomin包的情况下直接看到英文API(不知道是否有免费试用版或什么)。不过,我确实看过德国的文件,这些文件神秘地免费提供,而且是分开的。我在大学德语的第二语言让我意识到他们声称支持unicode和8位OpenType字体以及postscript轮廓。在

我听起来对他们很感兴趣吗?没有:-)希望使用和爱它们的人能纠正我,因为我重复一次,我对它们没有第一手的经验。如果你的预算允许而其他一切都失败了,这可能是一个选择。在

相关问题 更多 >