2012-08-06 180 views
0

我要使用Java打印API將JPG打印到Epson PictureMate照片打印機。我希望打印佔據整個頁面。圖像打印出來,但在右邊緣有一英寸的未印刷空間的八分之一。下面是我使用的代碼:從Java打印到Epson PictureMate

public void printImage(File image) throws Exception { 
    PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 
    aset.add(OrientationRequested.REVERSE_LANDSCAPE); 
    aset.add(MediaSizeName.JAPANESE_POSTCARD); 
    DocPrintJob printerJob = printService.createPrintJob();  
    FileInputStream fis = new FileInputStream(image); 
    Doc doc = new SimpleDoc(fis, DocFlavor.INPUT_STREAM.JPEG, null); 
    printerJob.print(doc, aset); 
    fis.close(); 
} 

我認爲在JAPANESE_POSTCARD大小是正確的,但它似乎小4「x6」的印刷品。我也嘗試將MediaPrintableArea設置爲4「x6」,但這也不起作用。有任何想法嗎?

回答

0

我知道在將紙張傳遞到PrintJob之後,紙張會發生一些(潛在的)內部纏繞,基本上它試圖驗證紙張大小和邊距可以與指定的打印機(從經驗)一起使用。

但是,您可能需要閱讀http://www.jpedal.org/PDFblog/2009/06/java-printing-page-size-problem/,因爲它可能有一些關於如何超過其中一些的想法。

至於如何將它們應用回PrintService的API是另一個問題;)