3 Stimmen

Drucken Sie PDF auf Netzwerkdrucker mit Java

Leute, ich stecke fest beim Drucken einer PDF-Datei mit Java. Der untenstehende Code wurde von mir geschrieben:

`

public static void main(String[] args) throws PrinterException, PrintException, IOException{
        DocFlavor docflavor = new DocFlavor.INPUT_STREAM ("application/octet-stream");
    //  DocFlavor docflavor = DocFlavor.SERVICE_FORMATTED.PAGEABLE;
/*      DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.;*/
        PrintService printService = PrintServiceLookup.lookupDefaultPrintService();
        DocFlavor[] docF = printService.getSupportedDocFlavors();
        for(int i = 0; i

``

}`

Der obige Code initiiert die Druckaktivität, aber das Problem ist, dass ich nur verschlüsselte Zeichen beim Druck erhalte. Ich bekomme nicht meine genaue Datei.

Zweitens, wenn ich den DocFlavor auf SERVICE_FORMATTED.PAGEABLE ändere, wird ein Fehler geworfen

java.lang.IllegalArgumentException: data is not of declared type
at javax.print.SimpleDoc.(Unknown Source)
at com.calculator.main.PrintingTest.main(PrintingTest.java:42)

Drittens, wenn ich den DocFlavor auf INPUT_STREAM.PDF ändere, wirft es einen Fehler

`Exception in thread "main" sun.print.PrintJobFlavorException: invalid flavor
at sun.print.Win32PrintJob.print(Unknown Source)
at com.calculator.main.PrintingTest.main(PrintingTest.java:49)`

All dies versuche ich auf einem Netzwerkdrucker. Jede Hilfe wäre großartig.

``

12voto

Reddymails Punkte 763

Ändern Sie einfach Ihren Code so, dass AUTO_SENSE wie unten gezeigt verwendet wird.

InputStream inputStream = new FileInputStream("C://test.pdf");
Doc doc = new SimpleDoc(inputStream, DocFlavor.INPUT_STREAM.AUTOSENSE,null);

1voto

Aaron Digulla Punkte 308693

Meine erste Vermutung wäre, dass new DocFlavor.INPUT_STREAM ("application/octet-stream") nicht das ist, was du möchtest.

Vielleicht möchtest du den Code aus dieser Antwort ausprobieren: https://stackoverflow.com/a/18962278/34088

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X