PDF Schrift nachträglich interieren
-
Hallo Leute,
ich habe folgendes Problem, meine Applikation erzeugt eine PDF Datei (mithilfe des Mozon pdf-toolkits).
Da einige Sonderzeichen benutzt werden sind diese auf einem "Fremdrechner", der die Schriftarten nicht besitzt, nicht richtig dargestellt.
Ich möchte das Mozon Toolkit gerne weiterhin benutzen, es verfüght aber nicht über die Möglichkeit Schriften in das PDF einzubetten.Daher meine Frage:
Wie bekomme ich nachträglich die Schrifftart in mein PDF? Am besten mit einer Bibliothek und nicht mit einem Server wie xerces/fop.Hat jemand schon sowas gemacht
Gruss Carsten
-
Ja.
Allerdings nicht mit einem Fertig-Paket. Ich habe mir die PDF-Doku
reingezogen. Gibt's bei Adobe.
-
Vielleich ein paar mehr Einzelheiten?
3* Bitte
Carsten
-
*umkipp*
Das sind 1200 Seiten Doku und das Format hat so seine Tücken.
Es gibt keine Möglichkeit, sich Fehler anzeigen zu lassen.Vielleicht xpdf ?
-
Hallo Scheppertreiber
meine Frage zielte eher darauf ab "Wie du vorgegangen bist?".
Hast du die Datei binär geöffnet nach etwas bestimmten gesucht und dann ersetzt?
Wieviel Aufwand war das denn, ohne Fehlermeldungen?? Höhrt sich nicht nach einer wünschenswerten Schnittstelle an.An alle:
Gibt es nicht doch eine Bibliothek zur nachträglichen integration?
-
Ich habe mir mit einem geeigneten Programm ein PDF gemacht und
mir das genauer angesehen - halt mit der Doku.Wieso binär ? PDF ist ein ASCII-Format, Du kannst das mit einme
Editor bearbeiten (es können binäre Objekte enthalten sein, das ist
aber nicht zwingend).Prinzipiell hast Du Objekte und Verzeichnisse in denen die Objekte
aufgelistet sind.Mal ein Beispiel:
%PDF-1.4 %âãÏÓ 1 0 obj << /Type /Catalog /Pages 2 0 R /PageLayout /OneColumn /PageMode /UseNone >> endobj 2 0 obj << /Type /Pages /Kids [3 0 R ] /Count 1 >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /Resources << /ProcSet [/PDF /Text ] /Font << /F1 6 0 R >> >> /MediaBox [0 0 842 595] /Contents 4 0 R >> endobj 4 0 obj << /Filter /FlateDecode /Length 272 >> stream x^P=O1Ýý+<&Ã…8õ} !¶Š°€¨è•(Rï€_ÌÏ`ÀN“ è)±ßó³ã=ìPÏ4Bï‘[v}ƒMC®ÈŒÓX‰ð,ÂɹhÊÅ<ê‘BrÞ{jRH(65yÇÆÜšh[³±lî;[µm0ƒÍ‡SIÜHð*x’·*çÍ=FÁœ]J¬®ª×»ÄÊ=æ÷V¸iTòÚç!sÇÆ×¶ ‰Uõ› ôEÏß<Þå·–\hÉñ;ë<y*íÆKXÆ?.Œ{v|Ø×ÒVu3¹—ÿk¢’þWÊnó§“âǸ*9µT§½”Ý(tnúïpmçá0]// šìýËhã|Ü*‡ endstream endobj 5 0 obj << /Title <FEFF0044006F006B0075006D0065006E0074> /Author <FEFF006A0064> /Creator <FEFF0044006F006B0075006D0065006E0074> /Producer <FEFF0064006F00500044004600200020002000560065007200200036002E00320020004200750069006C006400200032003800390020002800570069006E0064006F00770073002000580050002000200078003300320029> /CreationDate (D:20090819102152) >> endobj 6 0 obj << /Type /Font /Subtype /TrueType /FontDescriptor 7 0 R /BaseFont /Arial-BoldMT /FirstChar 0 /LastChar 255 /Widths 8 0 R /Encoding /WinAnsiEncoding >> endobj 7 0 obj << /Type /FontDescriptor /FontName /Arial-BoldMT /Ascent 728 /CapHeight 728 /Descent -210 /Flags 262176 /FontBBox [-628 -376 2000 1010] /ItalicAngle 0 /StemV 165 /XHeight 480 >> endobj 8 0 obj [750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 750 278 333 474 556 556 889 722 238 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611 975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556 333 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500 389 280 389 584 350 556 350 278 556 500 1000 556 556 333 1000 667 333 1000 350 611 350 350 278 278 500 500 350 556 1000 333 1000 556 333 944 350 500 667 278 333 556 556 556 556 280 556 333 737 370 556 584 333 737 552 400 549 333 333 333 612 556 278 333 333 365 556 834 834 834 611 722 722 722 722 722 722 1000 722 667 667 667 667 278 278 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611 556 556 556 556 556 556 889 556 556 556 556 556 278 278 278 278 611 611 611 611 611 611 611 549 611 611 611 611 611 556 611 556 ] endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000119 00000 n 0000000187 00000 n 0000000363 00000 n 0000000714 00000 n 0000001090 00000 n 0000001281 00000 n 0000001505 00000 n trailer << /Root 1 0 R /Info 5 0 R /Size 9 >> startxref 2553 %%EOF
Die Doku zu PDF gibt's http://www.adobe.com/devnet/pdf/.
Eingekapselt zwischen %PDF und %%EOF findet sich der Inhalt.
startxref zeigt auf die Adresse (file offset) der Objekttabelle,
siehe xref. Die Objekte sind durchnummeriert. trailer beinhaltet
die Objektnummern des Ursprungs des Dokuments(/Root) und des
Infoblocks(/Info).
-
Ok, das lasse ich mal über das Wochenende wirken!
Ich stelle mir vor,dass das eine wirklich frickelige Aufgabe war.
Ich sehe mich noch mal nach einer Library um, vielleicht habe ich ja Glück.Danke und last but not least ein schönes Wochenende
Carsten
-
Ja, und schaue Dir mal xpdf an.