【发布时间】:2012-12-31 11:50:21
【问题描述】:
我一直在使用 reportlab pdfgen 来创建用于打印的动态 pdf 文档。多年来,它一直运行良好。
我们即将举行筹款活动,并希望使用我们正在使用的“主题”字体(特别是 talldeco.ttf)生成 pdf 收据。
我使用以下设置字体没有问题:
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
ttfFile = "/usr/share/fonts/truetype/ttf-tall-deco/TALLDECO.TTF"
pdfmetrics.registerFont(TTFont("TallDeco", ttfFile))
p.setFont("TallDeco", 18) # Was Times-Bold...
现在问题来了:一些文本需要粗体和斜体,而 talldeco 仅带有 1 个文件(与其他一些字体不同)。我可以在 openoffice 中用这种字体加粗和斜体。
根据 reportlab 用户指南 (http://www.reportlab.com/software/opensource/rl-toolkit/guide/) 第 53 页,应该可以,并且他们会显示一些代码和结果,但我们的软件是使用 drawString 调用而不是段落。基于上述示例的测试应用:
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfbase.pdfmetrics import registerFontFamily
ttfFile = "/usr/share/fonts/truetype/ttf-tall-deco/TALLDECO.TTF"
pdfmetrics.registerFont(TTFont("TallDeco", ttfFile))
registerFontFamily('TallDeco',normal='TallDeco',bold='TallDeco-Bold',italic='TallDeco-Italic',boldItalic='TallDeco-BoldItalic')
p.setFont("TallDeco-Bold", 18) # Was Times-Bold...
只是在“TallDeco-Bold”上给出一个关键错误。
有什么建议吗?
【问题讨论】:
标签: django pdf-generation truetype reportlab