2012-08-06 179 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是另一个问题;)