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