У меня возникают проблемы при попытке распечатать «.pdf». Я печатал строки с этим кодом без проблем, но pdf не будет.Печать файла «.pdf» - PrinterJob
Моя программа получает байт [] с pdf и печатает его, я думал о записи временного файла для печати из InputStream, но также не удалось.
Следит код, я использую для печати:
FileChannel fc = null;
ByteBuffer bb = ByteBuffer.wrap(pdf);
FileOutputStream fos = null;
RandomAccessFile fis = null;
try {
File Tempfile = File.createTempFile("portfolios-temp", ".pdf");
fos = new FileOutputStream(tempfile);
fos.write(pdf);
fos.close();
FileInputStream psStream = new FileInputStream(tempfile);
DocFlavor psInFormat = DocFlavor.INPUT_STREAM.AUTOSENSE;
MyDoc doc = new SimpleDoc(psStream, psInFormat, null);
PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
aset.add (new Copies (1));
aset.add (OrientationRequested.PORTRAIT);
aset.add (Sides.ONE_SIDED);
aset.add (MediaSizeName.ISO_A4);
DocPrintJob job printService.createPrintJob =();
try {
job.print (myDoc, aset);
} Catch (Exception pe) {
pe.printStackTrace();
}
} [...]
я получаю службу печати таким образом:
PrintService printService = null;
for(PrintService printServiceCurrent : PrinterJob.lookupPrintServices()) {
if(printServiceCurrent.getName().equals(PRINTER_NAME)) {
printService = printServiceCurrent;
break;
}
}
Он отправить команду на принтер, но приходит как не имеет никакого содержания , Я проверил временный файл, и он создается отлично.
Любая идея?
Заранее спасибо.
Я добавил код, который я получаю службы печати. Я также исправил код aset. благодаря – Gannis