2011-02-04 10 views

cevap

41

Perhabs Tahoma bir TrueType fontudur ve önce kaydettirmeniz gerekir. ReportLab kullanım kılavuzuna göre bunu yapmak gerekir:

from reportlab.pdfbase import pdfmetrics 
from reportlab.pdfbase.ttfonts import TTFont 

pdfmetrics.registerFont(TTFont('Vera', 'Vera.ttf')) 
pdfmetrics.registerFont(TTFont('VeraBd', 'VeraBd.ttf')) 
pdfmetrics.registerFont(TTFont('VeraIt', 'VeraIt.ttf')) 
pdfmetrics.registerFont(TTFont('VeraBI', 'VeraBI.ttf')) 

canvas.setFont('Vera', 32) 
canvas.drawString(10, 150, "Some text encoded in UTF-8") 
canvas.drawString(10, 100, "In the Vera TT Font!") 

tuval nesnesi olan tüm kayıtlı (ve dolayısıyla kullanılabilir) fontları dönmelidir bir getAvailableFonts yöntemi vardır.

+0

sayesinde İşe yaradı, bu şekilde açıştürü yazı tiplerini kullanmak için zaten var mı ... – srisar

+0

Son kontrol ettiğim zaman, opentip için bir desteği yoktu. Son zamanlarda bir OTF kullanmam gerekti, fontforge ile TTF'ye dönüştürebiliyordum. Fakat OTF daha yeni bir format olduğundan, bazı özellikleri kaybedebilirsiniz. Neyse ki benim için o zaman bir fark yaratmadı. –

+0

Ben Consolas yazı tipini kullanmak istedim, ama opentype görünüyor, bu yüzden sordum. yine de harika bahşiş için teşekkürler .. – srisar

0

Uygulamaya DejaVuSans Yazı ekleyerek sorunumu çözdü. İşte kodu

pdfmetrics.registerFont(TTFont('DejaVuSans','DejaVuSans.ttf')) 

snippet'idir Ve tüm kodlama için UTF8 kullanmak. :) sen benim gün yaptı

İlgili konular