Java Windows UTF-8 (unicode) Drucken
Habe ich das problem, dass, wenn Sie in windows, und Sie versuchen zu drucken, die durch die JAVA können Sie nur verwenden, die AUTOSENSE-Eigenschaft.
Aber mein string, den ich will das gedruckt wird, ist im griechischen => UTF-8. Wenn ich die AUTOSENSE-zu TEXT_PLAIN_UTF8 ich ein: Sonne.drucken.PrintJobFlavorException: ungültige Geschmack Ausnahme....
Irgendwelche Vorschläge? Oder eine andere Art von Druck in Unicode?
danke!
String datastr = "UNICODE STRING";
byte[] databa = null;
try {
databa = datastr.getBytes("UTF8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
DocFlavor docFlavor = DocFlavor.BYTE_ARRAY.TEXT_PLAIN_UTF_16;
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
if (databa != null) {
DocPrintJob pjob = service.createPrintJob();
Doc doc = new SimpleDoc(databa, docFlavor, null);
try {
pjob.print(doc, aset);
} catch (PrintException e) {
e.printStackTrace();
}
wenn ich versuche, drucken es in der ZEICHENKETTE.TEXT_PLAIN und auch in alles andere als AUTOSENSE, bekomme ich diese:
sun.print.PrintJobFlavorException: invalid flavor
at sun.print.Win32PrintJob.print(Unknown Source)
Schließlich unterstützt die Aromen sind diese...
Win32 Printer : HP Deskjet 5440 Series Flavors:
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"
Wir haben zu erraten, da Sie nicht den kompletten stack-trace. Erstens, du tust UTF-8, aber dein Beispiel ist mit
Ich kann nicht verwenden Sie die Zeichenfolge text nur text-option in windows nur für einige Grund.
TEXT_PLAIN_UTF_16
. Stattdessen sollten Sie versuchen, die ...UTF_8
enum. Auch haben Sie versucht, die DocFlavor docFlavor = DocFlavor.STRING.TEXT_PLAIN;
auf die ursprüngliche Zeichenfolge, unter Umgehung der gesamten explizite UTF-8-byte-array Konvertierung? Wenn der Fehler immer noch Auftritt, dann ist das problem in dem, was Sie sind nicht zeigt Sie uns.Ich kann nicht verwenden Sie die Zeichenfolge text nur text-option in windows nur für einige Grund.
InformationsquelleAutor Yannis Assael | 2011-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es einfacher, es zu tun mit SWT hier ist der code...
InformationsquelleAutor Yannis Assael
Sollten Sie verwenden
DocFlavor.BYTE_ARRAY.TEXT_PLAIN_UTF_8
.Ja, aber wenn ich die Aromen, die meinen Drucker unterstützt nur unterstützt autosense obwohl es nicht alt ist. Alle anderen Optionen, oder eine andere Bibliothek, die ich verwenden könnte? Danke!
InformationsquelleAutor Amir Raminfar
Für auto_sense Sie schreiben, könnte ein BOM-Zeichen (\uFEFF) vor den text. Dies ist ein zero-width space, verwendet für die Markierung einen text als unicode.
InformationsquelleAutor Joop Eggen