Perl/PDF encoding [megoldva]

Sziasztok,

egy olyan problemam lenne, hogy report-ot kell generalnom perlben pdf-be. Minden mukodik is szepen csupan a kodolassal van problemam, az ekezetek helyett csupa kerdojel van.

use PDF::API2;

my $pdf = PDF::API2->new(-file => "HelloWorld.pdf");
$pdf->mediabox('A4');
my $page = $pdf->page;
my $fnt = $pdf->corefont('Times-Roman',-encode => 'latin2');
my $txt = $page->text;
$txt->textstart;
$txt->font($fnt, 20);
$txt->translate(100,800);
$txt->text("íéáűőúöüó");
$txt->textend;
$pdf->save;
$pdf->end( );

Viszont kimenetkent ezt kapom: Ă-ÊåŹőúÜßó

Elore is koszi,
bzg

Hozzászólások

> $txt->text("íéáűőúöüó");

tipp:

use encoding 'latin2'; # ha a szkript szövege latin2
use Encode; # az encode() miatt

$txt->text( encode("latin2", "íéáűőúöüó") );

"íéá??úöüó" sajna ennel jobb eredmenyt nem tudok elerni semmilyen formaban :( Szerintem minden kiprobaltam mar, tobbfele editoral irtam meg a scriptet /nano, vi, vim, netbeans, gedit/ hogy veletlenul se legyen copy/paste problema.

-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --

> A perl pdf api2 modulja 14 tipust tamogat

Szerintem nem csak 14-et, hanem azokat is, amik telepítve vannak az op.rendszerben:


use encoding cp1250;

use PDF::API2;

my $pdf = PDF::API2->new(-file => "HelloWorld.pdf");

$pdf->mediabox('A4');

my $page = $pdf->page;

my $fnt = $pdf->corefont('Arial');
my $txt = $page->text;
$txt->textstart;
$txt->font($fnt, 20);
$txt->translate(100,800);
$txt->text("Arial: öüóőúéáűíÖÜÓŐÚÉÁŰÍ");
$txt->textend;

my $fnt = $pdf->corefont('TimesNew-Roman');
my $txt = $page->text;
$txt->textstart;
$txt->font($fnt, 20);
$txt->translate(100,780);
$txt->text("TimesNew-Roman: öüóőúéáűíÖÜÓŐÚÉÁŰÍ");
$txt->textend;

$pdf->save;
$pdf->end( );

#

http://search.cpan.org/dist/PDF-API2/lib/PDF/API2/Resource/Font/CoreFon…
"PDF::API2::Resource::Font::CoreFont - Module for using the 14 PDF built-in Fonts."

de lehet tenyleg en ertettem rosszul, mindenesetre, az ő es ű nalam mindenkeppen kimarad :( Nalatok ez jol lefut?

-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --

> Nalatok ez jol lefut?

Pillanatnyilag nincs linux a gépemen, XP-n próbáltam ki.

Szerk:

Kipróbáltam ubuntu-n:


#!/usr/bin/perl -W

use encoding utf8;

use PDF::API2;

my $pdf = PDF::API2->new(-file => "HelloWorld.pdf");

$pdf->mediabox('A4');

my $page = $pdf->page;

$pdf->addFontDirs( '/usr/share/fonts/truetype/msttcorefonts' );

my $fnt =  $pdf->ttfont( 'Arial.ttf' );
my $txt = $page->text;
$txt->textstart;
$txt->font($fnt, 20);
$txt->translate(100,800);
$txt->text("Arial: öüóőúéáűíÖÜÓŐÚÉÁŰÍ");
$txt->textend;

$fnt = $pdf->ttfont( 'Times_New_Roman.ttf' );
$txt = $page->text;
$txt->textstart;
$txt->font($fnt, 20);
$txt->translate(100,780);
$txt->text("Times_New_Roman: öüóőúéáűíÖÜÓŐÚÉÁŰÍ");
$txt->textend;

$pdf->save;
$pdf->end();

#

hmmm, igazad van koszonom a segitseget, tobbe kevesbe mukodik, a pdf most mar jonak tunik, csupan ilyeneket szor a script:

Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 298.
...
Character in 'C' format wrapped in pack at /usr/share/perl5/PDF/API2/Basic/TTF/Glyph.pm line 612.
Use of uninitialized value in addition (+) at /usr/share/perl5/PDF/API2/Basic/TTF/Cmap.pm line 358.
Use of uninitialized value in numeric ne (!=) at /usr/share/perl5/PDF/API2/Basic/TTF/Cmap.pm line 358.

Erre van valami otlet? Egyebkent az msttcorefonts nem volt felteve.

-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --

nalam jo a peldad. nem lehet h utf8ra konfigolt editorral irtad be azt a stringet a forrasba?

Ha a hosszu ekezetek rosszak, akkor annyit tudsz csinalni, hogy embedelsz olyan fontot a pdf-be, amiben van CE support is.

Koszonom a hozzaszolasokat, sikerult megoldani! :)

bzg

-- Soha ne vitatkozz idiotakkal! Lesulyedsz az O szintjukre es legyoznek a rutinjukkal !!! --