PDFTK, CODE128 und UTF-8

PDFTK, CODE128 und UTF-8

Ich bin es gewohnt, PDF-Formulare aus PHP mit PDFTK auszufüllen. Vor kurzem wurde ich gebeten, einen Code-128-Barcode in ein PDF einzufügen. Dazu habe ich ein PDF mit mehreren Textfeldern für menschenlesbare Einträge sowie einem speziellen Textfeld erstellt, dessen Text mit einer speziellen Schriftart dargestellt wird, die Code-128-Symbole darstellt. Diese Schriftart finden Sie hier:http://www.jtbarton.com/Barcodes/Code128.aspxDer einzige Unterschied zwischen menschenlesbaren Feldern und Barcode-Feldern besteht in der Schriftart, die zur Anzeige der Zeichen verwendet wird.

Bis zu diesem Schritt funktioniert alles einwandfrei. Mit Adobe Reader kann ich einen vorbereiteten Barcode in mein spezielles Feld kopieren und einfügen, er wird einwandfrei dargestellt und kann von Barcode-Lesegeräten gescannt werden. Ein Beispiel ist Ñ000002HÓ( Ñist ein Starter, dann sind meine Daten 000002, dann folgt die Prüfsumme Hund das Ganze endet mit dem Stopper Ó).

Dann bekomme ich Probleme, wenn ich versuche, das Formular mit PDFTK auszufüllen. Wenn ich versuche, mein spezielles Feld damit auszufüllen, Ñ000002HÓwerden nur Zeichen aus der ASCII-Tabelle (also ) gerendert und anstelle der erwarteten Barcodesymbole für und 000002Hwerden Quadrate angezeigt . Überraschender ist, dass der Versuch, menschenlesbare Felder mit genau derselben Phrase auszufüllen, wie am Schnürchen läuft.ÑÓÑ000002HÓ

Ich habe überprüft, dass beide Feldarten genau dieselbe Zeichenfolge erhalten (einschließlich UTF-8-Kodierung), ich habe geprüft, ob die Schriftart gut eingebettet ist, um Anzeigeprobleme zu vermeiden, ich habe sichergestellt, dass die XFDF-Datei wohlgeformt ist usw.

Hier ein XFDF-Beispiel zum Ausfüllen eines PDF-Formulars mit den Feldern „Mensch“ und „Barcode“.

<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
    <fields>
        <field name="human"><value>Ñ000002HÓ</value></field>
        <field name="barcode"><value>Ñ000002HÓ</value></field>
    </fields>
</xfdf>

Ich fürchte, ich habe keine Idee mehr, wie ich dieses Problem lösen könnte. Wenn Sie eine Idee haben, wäre ich für Ihre Hilfe sehr dankbar.

Antwort1

Endlich habe ich eine Lösung gefunden. Genauer gesagt einen Workaround.

Es scheint, dass PDFTK UTF-8-Zeichen nicht richtig verarbeitet, wenn eingebettete Identity-H-Schriftarten auf Formularfelder angewendet werden. Um die PDF-Datei richtig darzustellen, anstattErsetzenein Feld mit Inhalt haben, setzen Sie diesen Inhalt einfach alsStandardwertdieses Felds. Dadurch übernimmt Acrobat den Rendering-Prozess des Formularfelds, anstatt ihn an PDFTK zu delegieren.

Fügen Sie dazu einfach need_appearancesdie PDFTK-Befehlszeile hinzu.

NOTIZ- Das Formularfeld bleibt im von PDFTK erstellten PDF erhalten, d. h. sein Inhalt kann anschließend vom Benutzer im Adobe Reader geändert werden.

verwandte Informationen