0
我在嘗試打印「.pdf」時遇到問題。我用這個代碼打印字符串沒有問題,但PDF不會。打印「.pdf」文件 - PrinterJob
我的程序用pdf接收一個byte []並打印出來,我想錄制一個tempfile來從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