在基于 PyGTK+ 的程序中,我使用 Reportlab 生成 PDF 输出。我想让用户为该 PDF 输出选择一种字体(部分原因是这个问题)。(Py)GTK+ 中的规范方法是使用 gtk.FontChooser 来执行此类任务,这似乎返回pango.FontDescription。
对我来说,重要的部分似乎是如何将这样一个对象转换为 reportlab 理解的东西,即我可以用作pdfmetrics.registerFont()
. 任何帮助表示赞赏。
(主要问题可能是 Pango FontDescription 似乎旨在为不同类型的字体提供统一的接口,例如 TrueType、Type1、OpenType 等,而对于 ReportLab,通常会使用不同的类来构造这些类型中的每一种,诸如此类reportlab.pdfbase.ttfonts.TTFont
)
(是的,从长远来看,我想切换到 cairo 进行 PDF 制作。但是在 cairo 和 pango 中为所有那些漂亮的高级鸭嘴兽布局功能实现等价物也需要做一些事情......)