首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么将用g2d绘制的BufferedImage实例精确打印,求教

2012-06-06 
如何将用g2d绘制的BufferedImage实例精确打印,求教比如:Java codeBufferedImage img new BufferedImage(

如何将用g2d绘制的BufferedImage实例精确打印,求教
比如:

Java code
    BufferedImage img = new BufferedImage(300, 300, BufferedImage.TYPE_INT_RGB);    Graphics g = img.createGraphics();    g.setColor(Color.BLACK);    g.fillRect(0, 0, 300, 300);


然后,我希望能在打印机上输出1英寸的方块

Java code
    DocFlavor psInFormat = DocFlavor.INPUT_STREAM.JPEG;    ByteArrayOutputStream outstream = new ByteArrayOutputStream();    try {        ImageIO.write(img, "jpg", outstream);    }    catch (IOException e) {        e.printStackTrace();    }    byte[] buf = outstream.toByteArray();    InputStream stream = new ByteArrayInputStream(buf);    Doc myDoc = new SimpleDoc(psStream, psInFormat, null);    PrinterResolution printerResolution = new PrinterResolution(300, 300, PrinterResolution.DPI);    PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();    attr.add(printerResolution);    attr.add(PrintQuality.HIGH);    PrintService services = PrintServiceLookup.lookupDefaultPrintService();    DocPrintJob job = services.createPrintJob();    try {        job.print(myDoc, aset);    }    catch (PrintException pe) {        pe.printStackTrace();    }


这段代码打印的结果是占据A4纸中央的一个大约2英寸的方块

这种结果是因为图片转换造成的?还是图片的ppi设置的不对?还是打印参数有问题?

[解决办法]
根据API说明上看 
你这样设应该就是
1英寸300像素了
[解决办法]
这方面的不懂,帮顶吧。祝你好运....
[解决办法]
PrinterResolution printerResolution = new PrinterResolution(300, 300, PrinterResolution.DPI);
PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
attr.add(printerResolution);

这个属性是用来搜索打印机用,即找出分辨率为300点的打印机。分辨率是打印机的固有属性,不能在打印时设置。

属性有几种类型,一种是可以设置的打印方式,另一种是可以取得的固有属性。

大概是这样。



[解决办法]
楼主敬业!
[解决办法]
楼主敬业

热点排行