String durcken die 2. (JPS)

fireblade1282

Mitglied
Schade, leider hat wohl niemand eine Lösung zu meinem Problem gefunden.
Ich möchte deshalb nochmal einen gesonderten Thread zu der Frage eröffnen. Ich weiss es gehört sich nicht einfach plumb nach einem Stück Code zu fragen, aber hat jemand eine Funktion die auf dem DefaultPrinter des JavaPrintService (bitte nicht über das AWT zeugs...) einen einfachen String drucken kann? (*vorsichtigRichtungModTomGuck*)
Ich will mich nicht davor drücken, aber ich bekomm das ganze einfach nicht geregelt.

Falls mir jemand statt Code lieber Wissensbeistand leisten will:
Im Moment scheitere ich daran, dass mein defaultPrinter angeblich keinen String drucken
kann - zumindest laut PrintServiceLookup.lookupDefaultPrintService().getSupportedDocFlavors();
das Teil unterstützt alles - vom bilder über url_inputs, aber einen String als Eingang such ich vergebens....

ich habe zur Zeit in etwa folgenden Code

Code:
String str = "I want to be printed...";

DocFlavor myFlavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc myDoc = new SimpleDoc(str.getBytes(), myFlavor, null);			
PrintService ps = PrintServiceLookup.lookupDefaultPrintService();

if (ps != null) {
	DocPrintJob job = ps.createPrintJob();
	try {
		job.print(myDoc, null);
		// DEBUGINFO:
		DocFlavor[] dfs = ps.getSupportedDocFlavors();
		for (int i = 0; i < dfs.length; i++) 
			System.out.println("Flavor " + i + ": " + dfs[i].toString()); 
	} catch (Exception pe) {
		pe.printStackTrace();
		// TODO: notify GUI/warning, etc...
	} 
} else {
	System.out.println("no printer found...");
	// TODO: notify GUI/warning, etc...			
}

Die debug Ausgabe erzeugt bei mir:

Code:
Flavor 0: image/gif; class="[B"
Flavor 1: image/gif; class="java.io.InputStream"
Flavor 2: image/gif; class="java.net.URL"
Flavor 3: image/jpeg; class="[B"
Flavor 4: image/jpeg; class="java.io.InputStream"
Flavor 5: image/jpeg; class="java.net.URL"
Flavor 6: image/png; class="[B"
Flavor 7: image/png; class="java.io.InputStream"
Flavor 8: image/png; class="java.net.URL"
Flavor 9: application/x-java-jvm-local-objectref; class="java.awt.print.Pageable"
Flavor 10: application/x-java-jvm-local-objectref; class="java.awt.print.Printable"
Flavor 11: application/octet-stream; class="[B"
Flavor 12: application/octet-stream; class="java.net.URL"
Flavor 13: application/octet-stream; class="java.io.InputStream"

Wie könnte ich den String am besten ... verpacken? Soll ich ihn in irgendeinen Stream basteln zu dem es ein einfacheres Flavor gibt...?
Wenn ich das alles recht verstehe will der print Befehl lediglich ein object.... wie er den inhalt von diesem Object interpretiert erfährt er über den Flavor...

kann ich den "Flavor 13: application/octet-stream; class="java.io.InputStream"" irgendwie nutzen? wenn ja was bedeutet das? Wie muss ich meinen String bereithalten?

Bin wirklich für jede Hilfe und/oder Code/Erfahrungsaustausch dankbar...

-Andy
 
>Schade, leider hat wohl niemand eine Lösung zu meinem Problem gefunden.


Ich denke, die meisten benutzen eine andere Druckimplementierung - nämlich die Standardumsetzung mit Printable, PrintJob, PageFormat usw.
 
Zurück