javax.print.DocPrintJob

Status
Nicht offen für weitere Antworten.

chregi1978

Mitglied
Hallo

Ich generiere mit javax.print.DocPrintJob einen Printjob und sende diesen an mein Drucker. Das Dokument welches ich sende ist ein Post Script (Adobe Post Script 3). Leider aber druckt der Drucker nichts! Fehlermeldung des Druckers:

"""""""""""""""""""""""""""""""""""""
ERROR: limitcheck
OFFENDING COMMAND: filter

STACK:

/ReusableStreamDecode
-filestream
/ImageData2
"""""""""""""""""""""""""""""""""""""

Im Netz finde ich dazu lediglich, ich solle alle JPG's mit GIF's ersetzen.. aber das muss doch auch anderst zu lösen sein!

Wenn ich mein Post Script in ein File streame und dann mit PS-Viewer GSView öffne geht das Problem los! Ich kann das Dokument ansehen. Daher ist auch klar, dass mein PS i.O. ist. Und wenn ich von dort aus an den selben Drucker sende funktioniert es problem los! Der Drucker druckt!

Einzig sehe ich, wenn ich mit GSView mein PS "in Datei drucken" mache, dann entsteht ein 8MB File.. mein PostScript jedoch ist lediglich 500K gross.. ?! Also diese Printer Geschichten verwirren mich voll. Bin nun schon eine Woche dran und komme nicht über den komischen Fehler von oben hinweg!

Hatte schon mal einer das selbe Problem oder weiss wie zu lösen ist? Vielen Dank!

Gruss
Chregi
 

Ebenius

Top Contributor
Postscript ist eben nicht gleich Postscript. Ich gehe davon aus, dass die GS-Tools das Postscript für den Drucker konvertieren. Versuch mal das Postscript ohne GS-Tools auf den Drucker zu schubsen (mit cp oder so), dann geht's sicher auch nicht.

Ebenius
 

chregi1978

Mitglied
Ja du hast föllig recht!

Wenn ich aus dem GS "Drucke Datei" mache (ohne diese zu öffnen) so sendet er diese direkt an den Drucker und es funktioniert NICHT.

Ich schliesse daraus, dass der PS Generator von GS einfach besser ist als meiner (ich verwende XEP und mache damit aus XML Streams PS..

Ich weiss jetzt einfach kein Ansatz mehr... so wie ich aber verstehe, sendet nun der Drucker Treiber - welchen ich ja mit der javax.print API auslese - die PS Datei direkt an den Drucker (ohne diese nochmals zu preparieren).

Gibt es eine Treiber Einstellung, welche das nochmalige konvertieren/validieren von PS Dateien ermöglicht (genau wie es GS macht?) und diese dann so an den Drucker schickt??

gruss
Chregi
 

Ebenius

Top Contributor
Welchen MIME-Type hat denn der DocFlavor? Wie sieht das AttributeSet aus? Hast Du mal ein Stück Quelltext, wie Du den Printjob anlegst und abfeuerst?

// Nachtrag: Gib auch mal alle PrintService-Attribute aus! Und mach mal (zum Beispiel mit ps2pdf) ein PDF aus dem 500K PS und versuch das zu drucken!

Ebenius
 
Zuletzt bearbeitet:

chregi1978

Mitglied
Hallo Ebenius! Danke erstmal für dein Feedback! Also so generiere ich den Code (Vorab ist zu sagen, dass dieser Code genauso auf meinem alten HP funktioniert hat. erst beim austausch zu einem Ricoh Drucker hat alles nicht mehr funktioniert):

[highlight=Java]
//Aus XML wird mit XEP PostScript generiert:
FOTransformer transformer = new FOTransformer(stylesheet, xep);
ByteArrayOutputStream out = new ByteArrayOutputStream();
transformer.transform(source, new FOTarget(out, outputFormat));
...
//Hier stecke ich die Daten in eine byte[] Object Sammlung
ByteArrayInputStream inStream = new ByteArrayInputStream(out.toByteArray());
int inBytes = inStream.available();
byte inBuf[] = new byte[inBytes];
inStream.read(inBuf, 0, inBytes);
...
//Dann erstelle ich die übliche javax.print Umgebung:
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
PrintService[] prservices = PrintServiceLookup.lookupPrintServices(flavor, pras);
...
//Hier loope ich durch die verfügbaren Drucker und hole mir den, den ich möchte:
for (int i = 0; i < prservices.length; i++) {
...
PrintService defaultService = prservices;
...
}
...
//Dann bereite ich den Job vor und drücke ab:
DocPrintJob job = defaultService.createPrintJob();
Doc doc = new SimpleDoc(inBuf, flavor, das);
job.print(doc, pras);
[/highlight]

Wie gesagt, beim HP hat so alles bestens funktioniert. Und für den neuen Ricoh habe ich bereits alle möglichen Treiber heruntergeladen dies gibt, alle führen zum selben Fehler (siehe erster Beitrag).

Siehst Du hier einen grundlegenden Fehler? Habe auch schon andere DocFlavor ausprobiert.. kein Erfolg.

Der einzige Erfolg hatte ich mit der Umwandlung von XML zu PDF.. da hat er auf einmal gedruckt, aber die Fonts sind falsch und das Dokument sieht gresslich aus :(

Gruss
Chregi
 

Ebenius

Top Contributor
Mit DocFlavor.BYTE_ARRAY.POSTSCRIPT funktioniert's auch nicht? Oder findest Du dann den PrintService gar nicht?

Gib auch mal alle PrintService-Attribute aus! Und mach mal (zum Beispiel mit ps2pdf) ein PDF aus dem 500K PS und versuch das zu drucken!

Ebenius
 

chregi1978

Mitglied
DocFlavor.BYTE_ARRAY.POSTSCRIPT funktioniert auch nicht...

Ich habe ein Treiber welcher dieses flavor akzeptiert (PS Driver for Universal Print)..

Hier die Print Service Attribute (RICOH Treiber):

Code:
defCollate    int    0    
defCopies    int    1    
defMedia    int    256    
defOrient    int    1    
defPaper    int    9    
defQuality    int    600    
defSides    int    1    
defYRes    int    600    
gotCopies    boolean    false    
gotTrays    boolean    false    
idList    ArrayList    null    
isCollateSup    boolean    true    
isColorSup    boolean    true    
isPrQualitySup    boolean    false    
isResSup    boolean    true    
isSidesSup    boolean    true    
lastSet    <unknown type>    null    
lenOptAttrCats    int    3    
mediaInitialized    boolean    false    
mediaPrintables    <unknown type>    null    
mediaSizeNames    MediaSizeName[]    null    
mediaSizes    MediaSize[]    null    
mediaTrays    MediaTray[]    null    
name    PrinterName    null    
nCopies    int    0    
notifier    <unknown type>    null    
port    String    "010.048.186.030"    
printer    String    "PS Driver for Universal Print"    
printRes    PrinterResolution[]    PrinterResolution[2]  (id=3550)    
supportedDocFlavors    DocFlavor[]    DocFlavor[17]  (id=3551)
Hier die Print Service Attribute des funktionierenden HP Treibers (nur noch die Unterschiede):
Code:
defCopies    int    1    
defPaper    int    -50    
port    String    "RNPDA26B8"    
printer    String    "NPIBF1818"    
printRes    PrinterResolution[]    PrinterResolution[1]  (id=3460)    
supportedDocFlavors    DocFlavor[]    DocFlavor[17]  (id=3461)
Ich versuche nun mal das mit dem PDF aus PS.. Danke für die Tipps
 

Developer_X

Top Contributor
Hallo


"""""""""""""""""""""""""""""""""""""
ERROR: limitcheck
OFFENDING COMMAND: filter

STACK:

/ReusableStreamDecode
-filestream
/ImageData2
"""""""""""""""""""""""""""""""""""""

Ein kleiner gutgemeinter Tipp:
Wenn du das nächste Mal eine Fehlermeldung angibst, dann setzte bitte neben diese:
"
Code:
"
ok?
Dann passiert so was:
[code]
cool oder?
 

Ebenius

Top Contributor
Was meinst du damit? Soll ich das PDF nun mit JPS einlesen und wiederum an den Drucker senden? Verstehe ich nicht..
So ähnlich. Einlesen musst Du's ja gar nicht. Es genügt schon, einen FileInputStream aufzumachen und einen entsprechenden DocFlavor zu nutzen: [HIGHLIGHT="Java"]DocFlavor psFlavor = DocFlavor.INPUT_STREAM.PDF;
// ...
FileInputStream fis = new FileInputStream("example.ps");
Doc doc = new SimpleDoc(fis, psFlavor, null);
printJob.print(doc, attributes);[/HIGHLIGHT]
Falls der Drucker/-Treiber das unterstützt (weiß ich natürlich nicht).

BTW: Du hast Post.

Ebenius
 

chregi1978

Mitglied
Hallo Ebenius

Musste mir mal übers Wochenende einen auf das Problem hier reinschütten :toll:

nun, das hat aber die Lösung auch nicht hervorgebracht :autsch:

Ich habe den docFlavor PDF probiert. JPS findet leider keinen Treiber dazu. Wenn ich dann aber

[highlight=Java]
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
FileInputStream fis = new FileInputStream("c:\\text.pdf");
Doc doc = new SimpleDoc(fis, flavor, null);
job.print(doc, pras);
[/highlight]

mach kriege ich einen föllig neue Fehlermeldung des Druckers:

Code:
ERROR: undefined
OFFENDING COMMAND: [Hyroglyphen]

STACK:
naja..

PS. Du hast auch Post
 

Ebenius

Top Contributor
Das Postscript das GS an Deinen Drucker sendet, scheint Level 1 zu sein. Hab eben das von Dir per E-Mail geschickte PostScript durch ps2ps gejagt: in Level 1 (8,130,630 Bytes), Level 2 und Level 3 (beides 4,559,023 Bytes).

Dein Drucker motzt über:
Code:
currentfile /ASCII85Decode filter /DCTDecode filter /ReusableStreamDecode filter [BINARY_DATA]

Kannst Du nicht den FO-T konfigurieren, dass er Level 1 erzeugt? Vielleicht klappt's ja damit. Oder es liegt einfach daran, dass die Graphiken gerastert im PS stehen müssen, weil Dein Drucker es sonst nicht versteht. Keine Ahnung weiter. :(

Ebenius
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Nachtrag: Da fällt mir eben auf, dass ReusableStreamDecode zu Level 3 gehört. Eventuell kann Dein Ricoh-Drucker allgemein nur Level 2?

Ebenius
 

chregi1978

Mitglied
Alle Bemühungen waren umsonst..

Ich habe herausgefunden, dass es am ImageForm2 liegt (ein Bild). Wenn ich das lösche, dann liegt es am ImageForm3... etc. bis ImageForm4. Sind diese gelöscht, so funktioniert der Druck!

Daraus habe ich geschlossen, dass es unweigerlich an den Bildern liegen muss, da ja ImageForm1 und 5 und 6 funktionieren. Ich habe diese also verglichen und die Bilder 2,3 und 4 schlussendlich mit den Daten von ImageForm1 (Header + Binary Data) ersetzt. Somit waren also ImageForm2 bis 4 alles kopien von 1 und dann: Unglaublich aber war, es ist noch immer ImageForm2 wo der Drucker motzt, trotz der nun gültigen Daten!

Ich habe dann ehrlich gesagt keine Ahnung mehr was noch tun! Ich habe dann noch versucht die Seitenränder zu verschieben.. in der Hoffung, dass das der Fehler ist.. aber nada.. auch das geht nicht.

Hilfe, das kann doch nicht wahr sein! :autsch:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
HolyFUT Javax Websocket API implementieren Java Basics - Anfänger-Themen 14
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
O Problem mit SOAP / javax.xml importieren Java Basics - Anfänger-Themen 7
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3
pkm javax.script.ScriptException bei der ScriptEngine Java Basics - Anfänger-Themen 9
P JDK installieren javac behauptet Javax.swing existiert nicht Java Basics - Anfänger-Themen 8
B javax.ejb.Timer wieder starten? Java Basics - Anfänger-Themen 0
R Klassen Javax.vecmath.* Java Basics - Anfänger-Themen 5
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
T eclipse findet javax nicht Java Basics - Anfänger-Themen 4
N Erste Schritte import javax.media.3d....; //Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 10
timbeau Javax.Mail: Check this out Java Basics - Anfänger-Themen 10
c_sidi90 javax.exe beenden nach Programmende Java Basics - Anfänger-Themen 10
L javax.xml.transform.Source Java Basics - Anfänger-Themen 6
StrikeTom Javax.mail frage(zu code) Java Basics - Anfänger-Themen 17
N javax.swing.JOptionPane einbauen? Java Basics - Anfänger-Themen 9
D package javax.comm does not exist Java Basics - Anfänger-Themen 5
kulturfenster Problem mit javax.swing.Timer Java Basics - Anfänger-Themen 2
G Fehler beim builden javax...... Java Basics - Anfänger-Themen 4
J Servlet Interface javax.servlet.Servlet Java Basics - Anfänger-Themen 2
? Konsolenprogramm hat Problem mit java.awt oder javax.swing Java Basics - Anfänger-Themen 7
G NoClassDefFoundError: javax/xml/stream/XMLStreamException Java Basics - Anfänger-Themen 23
A Finde javax.servlet.* nicht Java Basics - Anfänger-Themen 6
M Fehler: package javax.portlet does not exist Java Basics - Anfänger-Themen 2
V Serialisieren einer ShortMessage (javax.sound.midi) Java Basics - Anfänger-Themen 5
alexpetri javax.xml.stream.* nicht gefunden Java Basics - Anfänger-Themen 3
A java.awt und javax.swing verschwunden Java Basics - Anfänger-Themen 2
S import javax.image.io.*; funktioniert nicht Java Basics - Anfänger-Themen 28
L getDuration() von einem javax.media.player objekt problem. Java Basics - Anfänger-Themen 3
K Problem mit javax/servlet/http/HttpServletRequest.java Java Basics - Anfänger-Themen 2
E Wo bekomme ich das javax.swing.* package her? Java Basics - Anfänger-Themen 3
G import javax.servlet cannot be resolved Java Basics - Anfänger-Themen 1
N Probleme mit import von javax.servlet.* Java Basics - Anfänger-Themen 3
B Wo finde ich die Klasse javax.sound.sampled.AudioSystem Java Basics - Anfänger-Themen 7
R Javax.mail wird nicht gefunden Java Basics - Anfänger-Themen 2
G wie bekomme ich das javax.jws.* package in den JBuilder ? Java Basics - Anfänger-Themen 7
J javax.comm-API kompilieren Java Basics - Anfänger-Themen 12
C wo ist mein javax.mail? Java Basics - Anfänger-Themen 2
L JavaMail: javax.mail wird nicht gefunden Java Basics - Anfänger-Themen 2
F javax.imageio.ImageIO write methode Java Basics - Anfänger-Themen 11
B javax entpacken - aber wohin? Java Basics - Anfänger-Themen 2
H Print und Println Java Basics - Anfänger-Themen 13
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
H awt.print. Java Basics - Anfänger-Themen 0
Kotelettklopfer Stringbuilder mit print ausgeben Java Basics - Anfänger-Themen 83
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Input/Output System.out.print mit und ohne "" Java Basics - Anfänger-Themen 5
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
B Print Service Java Basics - Anfänger-Themen 5
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I Print Monitor Java Basics - Anfänger-Themen 0
I Drucken (Print) monitoren Java Basics - Anfänger-Themen 0
S Unterschied print() und println() Java Basics - Anfänger-Themen 3
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6
C Kleines Problem mit System.out.print Java Basics - Anfänger-Themen 1
R Char wird in System.out.print(); nicht ausgegeben Java Basics - Anfänger-Themen 6
T System.out.print : Frage zu Aufbau Java Basics - Anfänger-Themen 4
J Erste Schritte System.out.print (Fehlermeldung) Java Basics - Anfänger-Themen 14
X Eclipse System.out.print fehler Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
A Feststellen ob Desktop.print("*.pdf") fertig ist Java Basics - Anfänger-Themen 6
Junb Sys.Out.Print - aus Methode zugreifen Java Basics - Anfänger-Themen 6
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
S [JUnit] Print Results while running Java Basics - Anfänger-Themen 6
J print button Java Basics - Anfänger-Themen 2
T Dezimaltrennzeichen bei Ausgabe mit print ändern Java Basics - Anfänger-Themen 4
ruutaiokwu System.err.print(ln) macht ein durcheinander??! Java Basics - Anfänger-Themen 8
J print-Anweisung verschluckt Java Basics - Anfänger-Themen 3
S Print Methode zweier "Classes" kombinieren Java Basics - Anfänger-Themen 2
O Drucker: print methode wird 2 mal aufgerufen nachfrage Java Basics - Anfänger-Themen 4
J Fragen zu System.out.print und charAt Java Basics - Anfänger-Themen 3
S 2 kleine Methoden negieren und print Java Basics - Anfänger-Themen 8
D System.out.print(0101); =65. Warum? Java Basics - Anfänger-Themen 3
E Mehrfache print ausgabe ohne Schleife oder Rekursiven aufruf? Java Basics - Anfänger-Themen 48
M to pdf print process starten Java Basics - Anfänger-Themen 4
F print in java Java Basics - Anfänger-Themen 3
W Die Methode print() wird 2 mal für jede Seite aufgerufen Java Basics - Anfänger-Themen 9
B Objekt Orintiertes Programmieren ausgabe Fehler mit Print() Java Basics - Anfänger-Themen 4
S print()! Java Basics - Anfänger-Themen 2
L PrintWriter autoflush: println funktioniert, print nicht Java Basics - Anfänger-Themen 3
G Auswahl:in File schreiben, oder System.out.print Java Basics - Anfänger-Themen 4
J System.out.print Java Basics - Anfänger-Themen 5
S Listen - insert - print etc. Dringend! Bitte! Java Basics - Anfänger-Themen 6
H Print Methode Java Basics - Anfänger-Themen 6
C System.out.print oder println ? Java Basics - Anfänger-Themen 2
L drucken mit DocPrintJob Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben