在几年中没有碰到Java,但我被要求做一些Java代码打印图片和一些文本多次。 它可以在Mac上正常工作,但从windows机器打印出的打印输出被裁剪。 图像是他的资源,在300DPI约8×10。
public class printClass implements Printable { BufferedImage image; private URL url; printClass(URL url1) { url = url1; } public int print(Graphics g,PageFormat pf,int page) throws PrinterException { Graphics2D g2d = (Graphics2D) g; g2d.translate(pf.getimageableX(),pf.getimageableY()); Affinetransform theAT = g2d.gettransform(); double theScaleFactor = (72d / 300d); Font Font = new Font(\”Arial\”,Font.PLAIN,10); Font Font2 = new Font(\”Arial\”,5); g2d.setFont(Font); if (page < 10) { g2d.scale(theScaleFactor,theScaleFactor); g2d.draWrenderedImage(image,null); g2d.settransform(theAT); return PAGE_EXISTS; } else { return NO_SUCH_PAGE; } }public voID init() { try { img = ImageIO.read(url); image = (BufferedImage) img; } catch (IOException e) { System.out.println(\”Error: \” + e); } PrinterJob job = PrinterJob.getPrinterJob(); PrinterResolution pr = new PrinterResolution(300,300,PrinterResolution.DPI); PrintRequestAttributeSet attrib = new HashPrintRequestAttributeSet(); PageFormat pformat = job.getPageFormat(attrib); Paper paper = pformat.getPaper(); paper.setimageableArea(0.0,0.0,pformat.getPaper().getWIDth(),pformat.getPaper().getHeight()); pformat.setPaper(paper); attrib.add(pr); attrib.add(PrintQuality.HIGH); job.setPrintable(this); boolean ok = job.printDialog(); if (ok) { try { job.print(attrib); } catch (PrinterException ex) { } } } }
该URL是正在打印的图像。 这是Java小程序的一部分。 此代码中缺less文本添加部分,但它如下所示:
g.drawString(markUpText,x,y);
一如既往的感谢你。
复制文本文件到USB斑马打印机
从windows服务打印,无对话,无用户交互
PHP直接打印到打印机(本地/networking)(卡在打印后台处理程序中)
是否有(免费)窗口testing/虚拟打印设备?
delphi – 应用程序主窗体焦点不正确
打印时获取文件名称
重新打印pdf文件以打印书籍
从C#中的windows服务打印HTML文档,无需打印对话框
batch file在不信任的情况下跨域添加打印机
如何获得打印作业文件名(文件地址)?
好吧,我解决了我自己的问题。 我没有将打印格式包含在打印中。
job.setPrintable(this,pformat);
这会导致一些其他有趣的问题,包括windows中的打印质量和位置以及Mac中的位置。
我通过从属性中删除DPI和PrintQuality.HIGH来解决质量问题。
我在打印功能中用下面的代码解决了位置问题:
g2d.translate(pf.getimageableX() + 30,pf.getimageableY()+30);
我也切换到新的副本属性,以便我可以轻松地控制他们想要打印的副本数量。
仍然不知道这是否是最好的方式去这个,但它的作品!
总结
以上是内存溢出为你收集整理的Java打印在PC上添加裁剪全部内容,希望文章能够帮你解决Java打印在PC上添加裁剪所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容