Java打印在PC上添加裁剪【JAVA教程】

!
也想出现在这里? 联系我们
信息

Java打印在PC上添加裁剪,第1张

概述Java打印在PC上添加裁剪

在几年中没有碰到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上添加裁剪所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞61 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容