Hello Anonymous Monk,
One possible way could be with HTML::Entities.
Sample of code:
#!/usr/bin/perl use strict; use warnings; use HTML::Entities; use open ':std', ':encoding(UTF-8)'; my $html = "Character one: ω character two: ∞"; print decode_entities($html), "\n"; __END__ $ perl test.pl Character one: ω character two: ∞
Update: Adding complete answer. Sample of code from PDF::API2 / unicode characters. The solution to your problem is to add the appropriate font method. From the documentation PDF::API2/FONT_METHODS:
FONT METHODS @directories = PDF::API2::addFontDirs($dir1, $dir2, ...) Adds one or more directories to the search path for finding font files +. Returns the list of searched directories. $font = $pdf->corefont($fontname, [%options]) Returns a new Adobe core font object.
In my sample of code I only use one but if you follow the documentation you can add more. I downloaded the fonts from Fonts by DejaVu Fonts.
Sample of working code:
#!/usr/bin/perl use strict; use warnings; use PDF::API2; use HTML::Entities; # Create a blank PDF file my $pdf = PDF::API2->new(); # Add a blank page my $page = $pdf->page(); my $font = $pdf->ttfont('DejaVuSans.ttf'); # Add some text to the page my $text = $page->text(); $text->font($font, 20); $text->translate(80, 710); my $html = "Character one: ω character two: ∞"; my $decoded_string = decode_entities($html); $text->text($decoded_string); # Save the PDF $pdf->saveas('test.pdf');
Let us know if this works for you. BR / Thanos.
In reply to Re: PDF::API2 printing non ascii characters
by thanos1983
in thread PDF::API2 printing non ascii characters
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |