我有這樣的問題,即當您在Windows中並嘗試通過JAVA打印時,您只能使用AUTOSENSE屬性。 但是我想要打印的字符串是希臘語=> UTF-8。當我將AUTOSENSE轉到TEXT_PLAIN_UTF8時,我得到一個:sun.print.PrintJobFlavorException:無效的風味異常....Java Windows UTF-8(unicode)打印
有什麼建議嗎?或者用Unicode打印其他方式? 謝謝!
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();
}
,如果我嘗試打印在STRING.TEXT_PLAIN並在一切比AUTOSENSE,我得到這個:
sun.print.PrintJobFlavorException: invalid flavor
at sun.print.Win32PrintJob.print(Unknown Source)
最後支持的口味有這些...
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"
我們不得不猜測,因爲你沒有包括完整的堆棧跟蹤。首先,你正在做UTF-8,但你的例子是使用'TEXT_PLAIN_UTF_16'。相反,你應該嘗試'... UTF_8'枚舉。另外,你是否在原始字符串上嘗試了'DocFlavor docFlavor = DocFlavor.STRING.TEXT_PLAIN;',繞過了整個明確的UTF-8字節數組轉換?如果錯誤仍然存在,那麼問題出在你*不*顯示我們。 – lavinio
由於某些原因,我無法在Windows中使用字符串文本純文本選項。 –