2011-10-22T16:06:36 GwenDragonWas meinst du genau?
Wenn du auf Windows das PDF öffnest, dass siehst du Bytesalat und auf Linux den Inhalt?
Welches Programm zum Ansehen verwendest du denn?
2011-10-22T16:26:44 GwenDragonMag ja sein, dass PDF für Portable Document Format steht, die Betrachter heißen aber kaum 100% Compatible to Adobe! ;)
Ich würde erst mal auf beiden Systemen den gleichen Betrachter verwenden.
2011-10-22T17:26:32 GwenDragonEs wäre schon schön, wenn du uns einen kleinen Testcase zur Verfügung zu stellst und auch Angaben zu deiner Perl- und Modulversion machst, die du verwendet hast. Ansonsten sind Systemvergleiche ohne Ausgangsdaten und Kurzprogramm schwierig.
Ich tippe auf ein vorhandenes, an fehlerhafter Stelle stehendes oder fehlendes use utf8; oder auf eine merkwürdige De-/Umkodierungsfunktion, die du benutzt.
2011-10-22T18:45:22 rostiDie remote erzeugte PDF enthält GAR KEINE utf-8-kodierten Zeichen, sondern Zeichen in iso-8859-1 Kodierung, obwohl das Create-Script utf-8-kodierte Zeichen in die PDF::Create::string()-Funktion gibt.
2011-10-23T06:41:29 bianca2011-10-22T18:45:22 rostiDie remote erzeugte PDF enthält GAR KEINE utf-8-kodierten Zeichen, sondern Zeichen in iso-8859-1 Kodierung, obwohl das Create-Script utf-8-kodierte Zeichen in die PDF::Create::string()-Funktion gibt.
Und wo liegt jetzt genau der Fehler?
QuoteAndere Frage: Sind in deinen PDF's auch Tabellen enthalten?
2011-10-23T08:21:53 rostiEvntl. werde ich das noch verfeinern und ggf.eine Callbackfunktion in mein DB-Modul geben, da läuft ohnehin eine Schleife, es wird dann nur die Callbackfunktion gerufen, welche das Template expandiert. Ist aber alles noch nicht fertig ;)
{artnr => 'SH-001', anz => 2, price => 3.99}
1 2 3 4 5 6 7 8 9 10 11
my $linepos = 700; # y Startposition foreach my $rec(@$recordset){ my $params = record_hilfs_funktion($rec, $linepos); # Hasref $pdf->string($font, @{$params->{artnr}}); $pdf->string($font, @{$params->{anz}}); $pdf->string($font, @{$params->{price}}); $linepos -= 20; # Schriftgröße beachten } # ohne Gewähr auf syntaktische Richtigkeit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
# Tabelle mit der Bestellung, Bestellnummer nicht vergessen my $linepos = 520; my $cols = recParams( { artnr => 'Artikelnummer', arttitle => 'Artikelbezeichnung', anz => 'Anzahl', preis => 'Einzelpreis', xpreis => 'Summenpreis', }, $linepos ); # nun alles in einer Schleife über die 4 Spalten foreach my $col(1,2,3,4){ $page->string($f1, @{$cols->{$col}}); } # damit ist ersteinmal der Tabellenheader erzeugt # Record-Hilfsfunktion sub recParams{ my $rec = shift; # {artnr, arttitle, anz, preis, xpreis} my $ypos = shift; # Hashref für den Return, Parameter für die Spalten my $params = { 1 => [10, 40, $ypos, "$rec->{arttitle}/$rec->{artnr}"], 2 => [10, 310, $ypos, $rec->{anz}, 'r'], 3 => [10, 400, $ypos, $rec->{preis}, 'r'], 4 => [10, 490, $ypos, $rec->{xpreis}, 'r'], }; return $params; }
1
2
3
4
5
<</Type/Encoding/Differences[
39/quotesingle
196/Adieresis
214/Odieresis
220/Udieresis]>>
QuoteZudem kennt PDF-Create als Encoding nur WinAnsi im Font!
1 2 3 4 5 6 7 8 9 10
# utf8 zu latin1, iso-8859-1 sub utf2iso{ no warnings; my $ref = shift; # Liste der Codepoints erstellen my @cp = unpack "U0U*", $$ref; # Liste als Bytes betrachten und zusammenpacken my $bin = pack "C*", @cp; # hier ohne Prüfung! $$ref = $bin; }