J'ai utilisé reportlab pdfgen pour créer des documents PDF dynamiques pour l'impression. Cela fonctionne très bien depuis plusieurs années.Reportlab pdfgen prise en charge des polices TrueType
Nous organisons une levée de fonds et nous souhaitons générer des reçus PDF avec la police «thème» que nous utilisons (en particulier talldeco.ttf).
J'ai mis la police aucun problème en utilisant les éléments suivants:
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...
Maintenant vient la question: une partie du texte doit être en gras et en italique, et le TallDeco vient juste avec 1 fichier (contrairement à certains les autres polices). Je peux mettre en gras et en italique du texte dans cette police dans openoffice.
Selon le guide de l'utilisateur de reportlab (http://www.reportlab.com/software/opensource/rl-toolkit/guide/) page 53, il devrait être possible et ils montrent du code et les résultats, mais notre logiciel utilise des appels drawString au lieu de paragraphes. Une application de test basée sur l'exemple noté ci-dessus:
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...
Donne juste une erreur de clé sur 'TallDeco-Bold'.
Des suggestions?
Cela ne résout rien – Alvaro
Ce n'est pas une solution et dépendent de fichier TTF, il pourrait même finir avec des erreurs comme ' redéfinition de l'objet nommé: 'toUnicodeCMap: AAAAAA + Font'' – DimmuR