[reportlab-users] Using an OEM font

Tim Roberts timr at probo.com
Fri Oct 20 18:12:53 EDT 2006

Luc Saffre wrote:

>I'd like to create PDF files with texts encoded in cp437 or cp850. These
>texts also contain box characters which are not part of the latin
>character set. But most Windows machines can display and print such text
>if you use a font that provides the OEM charset (and if you activate the
>appropriate codepage).
>For example the following script should print a horizontal line that is
>20 characters wide. First on the consoloe ("print s"), then in a PDF
>file. The console displays it correctly, but the PDF file doesn't.
>import os
>from reportlab.pdfgen import canvas
>from reportlab.lib.units import mm
>print s
>canvas = canvas.Canvas(filename)
>I guess that I must specify the right font to use --- but how?

The default font is Helvetica, which is a Type 1 font that doesn't
support Unicode encoding.

import os
from reportlab.pdfgen import canvas
from reportlab.lib.units import mm
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

pdfmetrics.registerFont( TTFont( 'Arial', 'arial.ttf'))
print s
canvas = canvas.Canvas(filename)
canvas.setFont( 'Arial', 12 )

Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.

More information about the reportlab-users mailing list