[reportlab-users] extra TTF font borks script
Reed L. O'Brien
reed at intersiege.com
Sun Oct 29 23:44:24 EST 2006
On Oct 29, 2006, at 5:34 PM, Reed L. O'Brien wrote:
>> Reed L. O'Brien wrote:
>>> It doesn't work with anything in the reportlab/font directory.
>>> Is there a better way to send a PDF through a cgi script other
>>> that getpdfdata()?
>>> What I am getting:
>>> [Sun Oct 29 11:43:48 2006] [error] [client 127.0.0.1] Traceback
>>> (most
>> y",
>>> line 459, in Reference, referer: http://http://someurl
>>> [Sun Oct 29 11:43:48 2006] [error] [client 127.0.0.1] raise
>>> ValueError, "redefining named object: "+repr(name), referer:
>>> http://http://someurl
>>> [Sun Oct 29 11:43:48 2006] [error] [client 127.0.0.1] ValueError:
>>> redefining named object: 'toUnicodeCMap:AAAAAA+Verdana-Bold',
>>> referer: http://someurl
>>> What I am doing (it works with Helvetica):
>>> import cgi, sys
>>> from reportlab.pdfgen import canvas
>>> from reportlab.lib.units import inch
>>> from reportlab.lib.pagesizes import letter
>>> from reportlab.pdfbase import pdfmetrics
>>> from reportlab.pdfbase.ttfonts import TTFont
>>> pdfmetrics.registerFont(TTFont('Verdana', 'verdana.ttf'))
>>> def go(c):'''draws the images and text'''
>>> c.drawImage(footer, 4 * inch, .375 * inch, width=None,
>>> height=None)
>>> c.drawImage(sig, 2.75 * inch, 3.5 * inch, width=None,
>>> height=None)
>>> c.drawImage(sidebar, .5 * inch, .375 * inch, width=2 * inch,
>>> height=8.625 * inch)
>>> c.drawImage(header, .5 * inch, 9.325 * inch, width=7.375 *
>>> inch, height=1.375 * inch)
>>> to = c.beginText() # instantiate a text object
>>> to.setTextOrigin(2.75 * inch, 8 * inch)
>>> to.setFont("Verdana", 10)
>>> for line in txt:
>>> to.textLine("%s" % line)
>>> c.drawText(to)
>>> c = canvas.Canvas('/tmp/temp.pdf', pagesize=(8.5 * inch, 11 * inch))
>>> go(c)
>>> c.showPage()
>>> c.save()
>>> print c.getpdfdata()
>>> sys.exit(0)
>>> ~reed
>>
> On Oct 29, 2006, at 2:03 PM, Robin Becker wrote:
>
>> Does your python get invoked with the -u option (I am assuming
>> this is win32 of some kind because of the font name verdana).
>> --
>> Robin Becker
>
> No, it is on Linux2 (Fedora Core 3). The verdana font was bought
> for a previous project.
> I am not sure if I need to innvoke with -u flag. I will look at
> that and apache to find out and try it.
> It works fine with built in fonts, but not any that are registered.
> I have thought about storing the file in a StringIO object...
> I don't know if that would help.
>
OK, adding the -u flag to the #! line doesn't help.
I have also reproduced the error on a Mac G4 PB without CGI.
I used the same ttf from the linux box and also tried a ttf from a
windows box.
I also tried it with StringIO but it didn't help me at all, but it
does save me having a tempfile on disk.
Any more ideas?
Maybe Ill try reading through pdfdoc and ttfonts when I have some
spare time.
~r
More information about the reportlab-users
mailing list