2011-02-04 7 views

답변

41

Perhabs Tahoma는 트루 타입 글꼴이므로 먼저 등록해야합니다. ReportLab의 사용 설명서에 따라이 작업을 수행해야합니다

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!") 

캔버스 객체는 현재 등록되어 모든 (따라서 사용할 수있는) 글꼴을 반환해야 getAvailableFonts 방법이있다.

+0

감사합니다, 그것은 일을, 이런 식으로 오픈 타입 글꼴을 사용하도록 어쨌든이 ... – srisar

+0

마지막 내가 opentype에 대한 지원이 없다고 확인한 시간. 최근에는 OTF를 사용해야했습니다. fontforge를 사용하여 TTF로 변환 할 수있었습니다. 그러나 OTF가 새로운 형식이므로 일부 기능이 느슨해 질 수 있습니다. 다행히도 저에게는 그다지 큰 변화가 없었습니다. –

+0

Consolas 글꼴을 사용하고 싶었지만 opentype 인 것 같습니다. 그래서 물었습니다. 어쨌든 위대한 팁 주셔서 감사합니다 .. – srisar

0

DejaVuSans 글꼴을 응용 프로그램에 추가하면 내 문제가 해결됩니다. 여기 코드

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

의 조각이며 모든 코딩을 위해 UTF8을 사용합니다. : 당신이 내 하루가 만들어

관련 문제