[reportlab-users] TTF-Font support
Henning von Bargen
H.vonBargen at t-p.com
Tue Mar 19 12:25:02 EDT 2013
> From: Tom Py <mailtank2013 at gmail.com>
> Subject: Re: [reportlab-users] TTF-Font Support
>
> Hi,
>
> regarding my question at the beginning the Font-Support works for me,
but only
> when I print out the pdf directly (Font is originally an otf-font,
convertet
> into afm and pfb-files).
...
>
> But I have first put the pdf into a DB. And from there I give the file
to the
> user. It works with the reportlab standard fonts (Helvetica), but not
with
> additional fonts (Futura in my case).
>
> # via DB
> def createReport()
> ....
>
> # create the report
> pdfStream = createReport()
>
> # save the report in DB
> saveReport(pdfStream):
> sqlStatement = """exec storedProcedure @content='%s' """ %
> (pdfStream.replace("'","''").replace("\r\n","\n"))
> executeNonQuery(sqlStatement)
> return
>
> In this case the pdf opens with the error: 'Cannot extract the
embedded font
> "FuturaStd-Book". Some characters may not display or print correctly.'
> (Note: this way works fine with standard fonts, but not with the
addidional
> font.).
>
>
> Any idea, why this do not work with the additional font?
>
Most likely you treat the PDF as characters, but it's binary data.
And at some stage, non-ascii data gets garbled due to character-set
conversion.
You should treat the PDF as a BLOB.
And the way you code SQL without using bind variables seems error-prone
and insecure anyway...
HTH
Henning
More information about the reportlab-users
mailing list