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...
ここで問題が発生します。一部のテキストは太字で斜体にする必要があり、トールデコには 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」でキーエラーが発生するだけです。
助言がありますか?