我一直在使用reportlab pdfgen创建用于打印的动态PDF文档。多年来它一直工作得很好。Reportlab pdfgen支持粗体truetype字体
我们正在筹集资金,希望通过我们正在使用的“主题”字体(特别是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'上给出了一个关键错误。
有什么建议吗?
这不能解决任何问题 – Alvaro
这不是任何解决方案,取决于TTF文件甚至可能与类似的错误结束'重新定义命名对象:'toUnicodeCMap:AAAAAA + Font'' – DimmuR