Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^2: ( PDF::EasyPDF ) encoding problem

by lepetitalbert (Abbot)
on Sep 07, 2009 at 19:49 UTC ( [id://794013]=note: print w/replies, xml ) Need Help??


in reply to Re: ( PDF::EasyPDF ) encoding problem
in thread ( PDF::EasyPDF ) encoding problem

hi,

You're right moritz, I've already read this article several times but I still cannot say I'm really comfortable with this stuff.

I thought it was some package limitation, as I usually don't have problems with this ( french speaking area here ), but couldn't confirm it.

I tried your and almut's solution but no change.

Thanks and have a nice day.

"There is only one good, namely knowledge, and only one evil, namely ignorance." Socrates
  • Comment on Re^2: ( PDF::EasyPDF ) encoding problem

Replies are listed 'Best First'.
Re^3: ( PDF::EasyPDF ) encoding problem
by almut (Canon) on Sep 07, 2009 at 22:36 UTC

    I just had a closer look at the module...  Part of the problem is that PDF::EasyPDF specifies the encoding for its 14 Adobe Base Fonts (all it supports) as "MacRomanEncoding" — which is kind of unfortunate, as this encoding is rather different from ISO-8859-1, which Perl defaults to in most cases (for example, "é" is 0x8E in Mac Roman, while it's 0xE9 in ISO-Latin-1 and CP1252).  In other words, even if you had successfully solved the UTF-8 to ISO-8859-1 conversion issue, it still wouldn't work...

    But you can get it working with two small changes to EasyPDF.pm  (tested, i.e. works for me):

    1. Replace all 14 occurrences of "/MacRomanEncoding" with "/WinAnsiEncoding" (case is important). Windows ANSI encoding (CP1252) is roughly the equivalent of ISO-8859-1/ISO-8859-15  (one of the differences is that the Euro symbol is in a different position (0xA4 in ISO-8859-15, 0x80 in CP1252).

    2. Change this line

      open (EASYPDF,">$self->{file}") or die ...

      to read

      open (EASYPDF, ">:encoding(cp1252)", $self->{file}) or die ...

      (and don't forget to put use utf8; in your script)

    Update: alternatively, you could leave PDF::EasyPDF's /MacRomanEncoding declarations in place, and have Perl convert to that encoding directly (">:encoding(MacRoman)"), which would work, too (except for the Euro symbol)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://794013]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (3)
As of 2025-07-09 00:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.