Durckprobleme mit dem FAQ-Bsp

Status
Nicht offen für weitere Antworten.

ulr!ch

Bekanntes Mitglied
Hi JavaGemeinde,


ja ich kenne diesen Thread. Und bei mir hat sich genau dasselbe Problem eingestellt.
Und er fliegt mit java.lang.IllegalArgumentException: services must be non-null and non-empty at javax.print.ServiceUI.printDialog(Unknown Source) in Zeile 28 raus.
Code:
service = ServiceUI.printDialog(GraphicsEnvironment.
                                        getLocalGraphicsEnvironment().
                                        getDefaultScreenDevice().
                                        getDefaultConfiguration(), 200, 200,
            printService, defaultService, flavor, pras);

gif-Files - wie damals auch besprochen - druckt er ohne Probleme. Hat vielleicht zwischenzeitlich jemand den Bug in der Klasse gefunden. :) Hat thE_29 vielleicht noch einen letzten weisen Ratschlag?
Ich wäre sehr dankbar, wenn jemand wüsste, wie man mit dieser Klasse txt- oder html-Files ausdruckt (ohne sie in ein gif zu konvertieren... :))

By<e Ulrich
PS: Wenn ich mir die einzelnen Komponenten in der Konsole anzeigen lasse, steht da Folgendes:

  • sun.awt.Win32GraphicsConfig@42e816[dev=Win32GraphicsDevice[screen=0],pixfmt=0]
    [Ljavax.print.PrintService;@77158a
    Win32 Printer : HP DeskJet 710C
    text/html; charset="us-ascii"; class="java.io.InputStream"
    javax.print.attribute.HashPrintRequestAttributeSet@0
 

thE_29

Top Contributor
Probier halt mal ein paar von den anderen Textdingern!!


DocFlavor.INPUT_STREAM und die ganzen TEXT_XXX usw


Das Problem ist, das der Drucker das genau unterstützen muss, sonst gehts net und da hats Probleme...

Zb gibts keinen Drucker den ich kenne, der PDF unterstütz!
 

ulr!ch

Bekanntes Mitglied
Hatte ich schon ausprobiert. Hier die Ergebnisse:
  • .AUTOSENSE - Auswahlmenü erscheint - DruckerIcon im Tray auch - druckt nicht! (ebenso wenn ich eine txt-Datei mit gif verarbeiten möchte, was ja irgendwo auch klar ist)
    .TEXT_PLAIN_HOST - java.lang.IllegalArgumentException
    .TEXT_PLAIN_US_ASCII - java.lang.IllegalArgumentException
    .TEXT_PLAIN_UTF_16 - java.lang.IllegalArgumentException
    .TEXT_PLAIN_UTF_16BE - java.lang.IllegalArgumentException
    .TEXT_PLAIN_UTF_16LE - java.lang.IllegalArgumentException
    .TEXT_PLAIN_UTF_8 - java.lang.IllegalArgumentException

Wenn ich dich richtig verstanden habe, dann wird das Ausdrucken von txt-Dateien mit einem HP Deskjet 710C nicht unterstützt? Das kann doch nicht sein. :( Aber ein Lösung habe ich natürlich auch nicht parat.

By<e Ulrich
 

thE_29

Top Contributor
Das Problem ist dass das Java nicht mit deinem Drucker unterstützt (warum auch immer sun so eine dämliche Umgebung eingerichtet hat die mit fast keinen Druckern funktioniert weiß keiner...)

Ich teste mal das kurz bei mir, mal schaun was sich da ergibt....
 

thE_29

Top Contributor
Nachtrag: also bei mir funktioniert eine Text Datei mit AUTOSENSE!


Druckt er bei dir da wirklich nichts??

(isn Netzwerkdrucker)
 

ulr!ch

Bekanntes Mitglied
Nein, es ist kein Netzwerkdrucker, sondern ganz normal an LPT1 angeschlossen.
Er druckt bei mir mit AUTOSENSE rein gar nichts, aber er fliegt auch nicht raus. :)
Habe die Textdatei in unterschiedlichen Formaten abgespeichert (Unicode, ANSI, UTF-8...), allerdings kein sichtbares Resultat?
Why? Per google finde ich nur immer: jaja, ist schlecht implementiert.
[zu mir gesprochen] Das kann doch gar nicht so schwer sein. [/zu mir gesprochen]

By<e Ulrich
 

thE_29

Top Contributor
Mach mal auf Autosens und dann wenn bau hier das dazu ein um dir die Typen die dein Drucker unterstütz auszugeben!

Code:
service = ServiceUI.printDialog(GraphicsEnvironment.
                                        getLocalGraphicsEnvironment().
                                        getDefaultScreenDevice().
                                        getDefaultConfiguration(), 200, 200,
            printService, defaultService, flavor, pras);  //das war schon

//neu

        for(int x = 0; x != service.getSupportedDocFlavors().length; x++)
        {
          System.out.println(">>>  " + service.getSupportedDocFlavors()[x].toString());
        }

Hier bekommst du raus welche Typen unterstützt werden!

Schau mal welche das sind!
 

ulr!ch

Bekanntes Mitglied
Die Ausgabe lautet wie folgt:

>>> image/gif; class="[B"
>>> image/gif; class="java.io.InputStream"
>>> image/gif; class="java.net.URL"
>>> image/jpeg; class="[B"
>>> image/jpeg; class="java.io.InputStream"
>>> image/jpeg; class="java.net.URL"
>>> image/png; class="[B"
>>> image/png; class="java.io.InputStream"
>>> image/png; class="java.net.URL"
>>> application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
>>> application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
>>> application/octet-stream; class="[B"
>>> application/octet-stream; class="java.net.URL"
>>> application/octet-stream; class="java.io.InputStream"

Was bedeuten die application-Einträge?
Kann ich jetzt keinen Text drucken? :(

By<e Ulrich
 

thE_29

Top Contributor
Probier mal den Flavor aus

DocFlavor flavor = new DocFlavor("application/octet-stream","java.io.InputStream");

Und wenn dann kein Text rauskommt, dann weiß ich auch net...
 

ulr!ch

Bekanntes Mitglied
thE_29 hat gesagt.:
Probier mal den Flavor aus

DocFlavor flavor = new DocFlavor("application/octet-stream","java.io.InputStream");

Und wenn dann kein Text rauskommt, dann weiß ich auch net...

Leider kein Ergebnis. :cry:
Dennoch thE_29 Danke für die Zeit und die Hilfe...
Dann muss ich mir was anderes überlegen.

By<e Ulrich
 

thE_29

Top Contributor
Mh, dann probiere das andere ausdrucken...


Wenn es so nicht geht, kann ich leider auch nichts machen!!


Die Drucken API in Java is fürn Hugooooo!!
 

ulr!ch

Bekanntes Mitglied
thE_29 hat gesagt.:
Mh, dann probiere das andere ausdrucken...
Wenn es so nicht geht, kann ich leider auch nichts machen!!
Die Drucken API in Java is fürn Hugooooo!!
Was meinst du mit "das andere ausdrucken..." - stehe gerade auf dem Schlauch, und weiß nicht, wie ich weitermachen soll. :(

By<e Ulrich
 

thE_29

Top Contributor
In den FAQ sind 3 Bsp zum Drucken die sich alle voneinander unterscheiden.. (zumindest die ersten 2)
 
Status
Nicht offen für weitere Antworten.

Oben