У меня проблема в том, что когда вы находитесь в Windows и пытаетесь печатать через JAVA, вы можете использовать только свойство AUTOSENSE.
Однако моя строка, которую я хочу напечатать, находится на греческом => UTF-8. Когда я переключаю AUTOSENSE в TEXT_PLAIN_UTF8, я получаю: sun.print.PrintJobFlavorException: недопустимое исключение вкуса ....
Есть предложения? Или другой способ печати в Юникоде?
спасибо!
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"