Fehlende Zeichen beim Drucken mit PDFBox

master099

Mitglied
Hallo zusammen,

ich habe ein Problem beim Drucken mit PDFBox.

Meine Vorgehensweise bis zum Druckauftrag:

- Druckauftrag per Redmon entgegenehmen und an meine Java-Anwendung weitergeben
- In der Anwendung wird die entgegengenomme Postscript-Datei mittels Ghostscript (GSWin32c.exe) in eine PDF umgewandelt
- Zusätzlich wird per IText ein Template (Briefpapier) mit der erstellten PDF gemergt

Bis hierhin funktioniert alles. Diese Datei soll nun über den Java-Printdialog (oder Windows-Printdialog) ausgedruckt werden. Hierfür setze ich PDFBox ein. Das Problem ist nun, dass bestimmte Buchstaben fehlen.

Folgendes tritt beim Drucken auf:

- Beim den Inhalten aus dem Template (Briefpapier) fehlen die Umlaute, alle anderen Buchstaben werden korrekt gedruckt
- Beim den Inhalten, die aus der Anwendung kommen, fehlen die Buchstaben c, k und o ... alle anderen Buchstaben (auch Umlaute) werden korrekt gedruckt

ABER:

Wenn man die PDF als Datei ablegt und diese dann z. B. per Acrobat Reader druckt, funktioniert es fehlerfrei! Es muss daher vermutlich mit eingebetetten Schriften o. ä. zusammenhängen, aber ich finde keine Lösung.

Habe alternativ auch schonmal PDF-Renderer statt PDFBox probiert. Die Ausgabe war jedoch noch fehlerhafter oder es kommt die Fehlermeldung "Don´t know how to handle MMType1-Font". Das Ganze als Bild zu drucken geht nicht, da sich das Template dann mit der generierten PDF überlagert.

Hat jemand eine Idee? Beispiel-Code kann ich noch posten, falls nötig. Vielen Dank im Voraus...
 

HoaX

Top Contributor
Jaja, solch komische Sachen mit PDFs kenne ich. Bei mir war die Lösung das ganze nochmal durch Ghostscript zu jagen und als PDF 1.3 oder so schreiben zu lassen.
 

master099

Mitglied
Vielen Dank für deine Rückmeldung.

Bei mir war die Lösung das ganze nochmal durch Ghostscript zu jagen und als PDF 1.3 oder so schreiben zu lassen.
Leider kann ich dir da nicht folgen, könntest du dein Vorgehen bzgl. des Problems etwas genauer schildern, oder vielleicht sogar das Command posten. Mir ist nämlich nicht klar, wie ich eine PDF Datei erneut mit Ghostscript "bearbeiten" kann und somit als Input = PDF und als Output = PDF angeben kann.

Danke schon mal für deine Mühe,
Gruß master099
 

HoaX

Top Contributor
Einfach dem Ghostscript das PDF zum Lesen geben, ganz einfach:
Code:
$ cat shrinkpdf.sh 
#!/bin/sh

gs	-q -dNOPAUSE -dBATCH -dSAFER \
	-sDEVICE=pdfwrite \
	-dCompatibilityLevel=1.3 \
	-dPDFSETTINGS=/screen \
	-dEmbedAllFonts=true \
	-dSubsetFonts=true \
	-dColorImageDownsampleType=/Bicubic \
	-dColorImageResolution=100 \
	-dGrayImageDownsampleType=/Bicubic \
	-dGrayImageResolution=100 \
	-dMonoImageDownsampleType=/Bicubic \
	-dMonoImageResolution=100 \
	-dColorConversionStrategy=/LeaveColorUnchanged \
	-sOutputFile=out.pdf \
	 $@
 

master099

Mitglied
Hi,

also ich habe deinen Tip ausprobiert aber leider ohne Erfolg. In dem Erzeugten PDF fehlen weiterhin Zeichen.

Hat vielleicht jemand anderes eine Idee?

Alternativ habe ich die Möglichkeit aus dem PDF ein PNG zu generieren per Ghostscript und dieses Bild dann in ein neues iText Document einbinden und wiederum als PDF speichern. Mir fällt dabei nur auf, dass das Bild einfach nicht so sauber aussieht(verwaschen) wie einfacher Text.

Für jeden weiteren Tip bin ich dankbar.

Gruß,
master099
 

master099

Mitglied
Hi nochmal,

ich habe jetzt noch weiter probiert und bekomme noch keine saubere Lösung hin. Habe es jetzt so gelöst, dass ich per Ghostscript aus der PDF ein JPG in höchstmöglicher Qualität generiere. Dies binde ich dann in ein IText Document ein und generiere die finale PDF. Folgende Probleme treten auf:

- Die Druckqualität ist nicht 100%tig.
- Wenn es sich im mehrere Seiten handelt, werden natürlich mehrere JPGs generiert. Die daraus am Ende resultierende PDF wird dann aber mitunter sehr groß, so dass man sie z. B. nicht mehr per Mail verschicken kann.

Könnte jetzt noch probieren statt JPG das Ganze als EPS zu generieren und damit evtl. den Qualitätsverlust zu beseitigen. Hab jedoch noch nicht raus, wie das so richtig funktioniert. Die Dateigröße wird am Ende vermutlich aber immer noch zu groß sein.

Das Problem mit der Textcodierung muss doch zu lösen sein, so dass ich gar nicht erst ein Bild aus der PDF machen muss :(((( hast du - oder jemand anders - evtl. noch einen Tip?

DANKE

Gruß,
Daniel
 

master099

Mitglied
Hallo, sorry dass ich mich jetzt erst melde. Habe solange noch selbst probiert. Danke für die Antworten...

Ich benötige einen Druckerdialog. Habe es mittlerweile scheinbar hinbekommen. Zumindest gingen nun alle Tests sauber durch. Es lag scheinbar an einer exklusiven Schrift (Frutiger). Nun funktioniert es mit allen Zeichen - auch ohne die Formatierung als Bild - und die PDF´s werden natürlich auch nicht zu groß.

Teste jetzt nochmal ausführlich und melde mich ggf. nochmal. MERCI...

PS: Echt nicht ohne das PDF-Thema...

Gruß,
Daniel
 

master099

Mitglied
Leider ist das Thema nach meinen letzten Tests doch noch nicht ganz erledigt. Aber habe das Problem nun eingekreist.

Ich habe Briefpapier dabei, wo die Schriftart "Frutiger" als Typo1-Schrift eingebettet ist. Bei diesem Briefpapier werden die Umlaute nicht mitgedruckt. Verwende ich ein PDF-Template (Briefpapier), wo "Frutiger" als TrueTypeFont eingebunden ist, druckt er alle Umlaute korrekt mit.

Wie ich es hinbekomme, dass auch Type1-Schriften funktionieren, weiß ich noch nicht. Jemand da vll noch ne Idee?

Ansonsten frage ich beim Kollegen, der das Briefpapier erstellt mal nach, warum er Frutiger ab und an als Type1-Schrift eingebunden hat und manchmal als TrueTypeFont. Vermute, dass ein paar PDF-Templates, sprich das Briefpapier evtl. mit Openoffice erzeugt wurden. Wobei, wenn ich mit Openoffice eine PDF erzeuge und die Schrift "Frutiger" nehme, habe ich sie immer als TrueType drin. Damit funktioniert es dann auch...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
M DYGraphen darstellen... fehlende Einstellungen Allgemeine Java-Themen 1
K JFreeCharts - Dummy für fehlende Daten Allgemeine Java-Themen 6
P fehlende Mehrfachvererbung logging.Handler impl. Observable Allgemeine Java-Themen 5
L Fehlende Teile des javax Packages Allgemeine Java-Themen 3
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
S Zeichen | in regex Allgemeine Java-Themen 8
_user_q JavaFX Robot alle Unicode-Zeichen schreiben lassen können Allgemeine Java-Themen 12
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
M Checkstyle 100 Zeichen pro Zeile Allgemeine Java-Themen 11
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
Master3000 Komisches Zeichen als Ausgabe in der Konsole Allgemeine Java-Themen 20
M Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
N Überprüfung ob ein bestimmtes Zeichen <1 mal vorkommt Allgemeine Java-Themen 2
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
G Übermittlung zusätzlicher ASCII-Zeichen bei Übertragung von Dateiinhalt mit Xmodem - JAVA Allgemeine Java-Themen 9
R Wie bekomme ich das Zeichen 'digit' an vorderster Stelle Allgemeine Java-Themen 4
S [Regex] Nur diese Zeichen beachten Allgemeine Java-Themen 1
Bluedaishi Zeile um zeichen erweitern Allgemeine Java-Themen 9
N Datei Zeilenweise Einlesen, Versteckte Zeichen Allgemeine Java-Themen 5
Xge Replace x Zeichen aus String Allgemeine Java-Themen 2
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen &#8203; Allgemeine Java-Themen 3
E Compiler-Fehler Unicode Zeichen einlesen Allgemeine Java-Themen 1
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
T xls-Datei per Apache Commons CsvParser einlesen UTF-8 Zeichen russische Zeichen Allgemeine Java-Themen 2
AssELAss String jeweils nach x Zeichen Zeilenumbruch Allgemeine Java-Themen 1
DStrohma Input/Output KeyEvent nur verarbeiten wenn es ein "sichtbares" Zeichen ist? Allgemeine Java-Themen 1
B In Java String ein + Zeichen Allgemeine Java-Themen 4
AssELAss Zeilenumbruch immer nach bestimmtem Zeichen Allgemeine Java-Themen 1
J Anzahl der Zeichen bei Eingabe begrenzen Allgemeine Java-Themen 5
V Tastendruck für UTF-8 Zeichen emulieren Allgemeine Java-Themen 4
B BufferedWriter in InputStream oder Zeichen-Stream in Byte-Stream Allgemeine Java-Themen 5
C Hex Zeichen ersetzen durch leer Zeichen Allgemeine Java-Themen 5
R Besondere Zeichen in Dateinamen Allgemeine Java-Themen 4
B Alt-Griechisch Zeichen in Dateien Allgemeine Java-Themen 2
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
C Variablen $-Zeichen in String ersetzen Allgemeine Java-Themen 3
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
L Problem bei ausführbarer jar Datei mit Unicode-Zeichen Allgemeine Java-Themen 4
S String in Double - letztes Zeichen fehlt Allgemeine Java-Themen 4
A Erstes Zeichen im String "toUpperCase"n Allgemeine Java-Themen 11
A Umwandlung von Text/Zeichen in Polynome Allgemeine Java-Themen 8
cedi int Zahl in ein ASCII zeichen umwandeln und dieses in ein externes Textfenster schreiben Allgemeine Java-Themen 6
K String: alle X Zeichen Zeilenumbruch Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
Zettelkasten Aus String bestimmtes Zeichen herausfinden Allgemeine Java-Themen 19
M Asterisk in String ("Egal-Zeichen") Allgemeine Java-Themen 4
V Chinesische Zeichen Escapen Allgemeine Java-Themen 4
I Teilweise falsche Darstellung jap. Zeichen im JEditorPane mit RTFEditorKit aus RTF-Datei Allgemeine Java-Themen 5
D Datei mit allen Ascii Zeichen Allgemeine Java-Themen 2
R Unsichtbare Zeichen Allgemeine Java-Themen 7
U Namen von Klassen haben $-Zeichen Allgemeine Java-Themen 5
P RegEx und $-Zeichen als Literal Allgemeine Java-Themen 5
neonfly Anzahl Zeichen pro Zeile auf der Konsole Allgemeine Java-Themen 8
C Strings zwischen 2 Zeichen auslesen Allgemeine Java-Themen 7
A Zeichen beim Eingeben in ein DOS-Fenster nicht anzeigen? Allgemeine Java-Themen 3
F Hexcode von ASCII Zeichen erhalten Allgemeine Java-Themen 2
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
V Dateien mit &-Zeichen im Namen öffnen Allgemeine Java-Themen 13
N String in einzelne Zeichen zerlegen Allgemeine Java-Themen 8
M Problem mit Zeichen aus einer Datei auslesen Allgemeine Java-Themen 2
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
G String.replaceall - mehrere Zeichen durch eines ersetzen Allgemeine Java-Themen 5
G Tschechische Zeichen in XML-Antwort Allgemeine Java-Themen 22
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
N Xor Warum kommt Flasches Zeichen in Java Allgemeine Java-Themen 36
S Stringarray splitten an unbekanntem Zeichen Allgemeine Java-Themen 7
A Dezimalzahlen: Komma-Zeichen Allgemeine Java-Themen 4
T Einzelnes Zeichen von der Tastatur einlesen, aber ohne Enter Allgemeine Java-Themen 4
S Was bedeutet dieser Zeichen Allgemeine Java-Themen 4
E Wie Zeichen eingeben mit Klasse Scanner? Allgemeine Java-Themen 5
S Zeichen, dass Programm noch läuft Allgemeine Java-Themen 3
M Anwendung nur einmal starten / Zeichen in String zählen Allgemeine Java-Themen 7
T [Regex] Zeichen ausschließen Allgemeine Java-Themen 8
Luma Unicode Steuerzeichen von druckbaren Zeichen trennen Allgemeine Java-Themen 10
M JTable: Anzahl Zeichen bei Eingabe Allgemeine Java-Themen 2
G String parsen und Problem mit escaped zeichen Allgemeine Java-Themen 4
Z Letztes zeichen eines strings löschen Allgemeine Java-Themen 3
A bestimmte Zeichen aus einem String auslesen Allgemeine Java-Themen 2
L unicode-zeichen in ein txt-File schreiben Allgemeine Java-Themen 3
J Problem mit nichtlateinischen Zeichen Allgemeine Java-Themen 2
B String + Zeilenumbruch nach X-Zeichen Allgemeine Java-Themen 4
M Nach 4 Zeichen Fokus ändern Allgemeine Java-Themen 2
oliver1974 Wie ResourceBundles mit Unicode Zeichen korrekt einlesen? Allgemeine Java-Themen 4
E Alarm ausgeben (ASCII Zeichen 7) über Lautsprecher Allgemeine Java-Themen 11
G Alle Zeichen des Alphabets ausgeben Allgemeine Java-Themen 4
K String-Objekt mit zig tausend Zeichen Allgemeine Java-Themen 12
T Muster/Zeichen/Texterkennung auf einem Image Allgemeine Java-Themen 9
Y Zeichen verschiedenfarbig in einer JTextPane darstellen Allgemeine Java-Themen 17
P Regulärer Ausdruck um sich wiederholende Zeichen zu finden. Allgemeine Java-Themen 9
O Split methode tut bei Zeichen "\", "\\" Allgemeine Java-Themen 7
H Unicode Darstellung in Java, spezielles Zeichen gesucht Allgemeine Java-Themen 4
S Unicode-Zeichen erstellen/ Kodierung Allgemeine Java-Themen 4
J RegEx: "wenn zeichen folgen ersetze x mit y, sonst mit Allgemeine Java-Themen 2
Z Zeichen/char in einer Datei löschen Allgemeine Java-Themen 6
I $ zeichen im class-namen Allgemeine Java-Themen 4
S ￾ Zeichen umwandeln in ü per .replace(); Allgemeine Java-Themen 6
N Zeilenumbruch in String nach jeweils x Zeichen einfügen? Allgemeine Java-Themen 6
D gewisse Zeichen sind nach dem entschlüsseln anders Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben