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: &#8734"; 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.

Seeking for Perl wisdom...on the process of learning...not there...yet!

In reply to Re: PDF::API2 printing non ascii characters by thanos1983
in thread PDF::API2 printing non ascii characters by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.