Linux上点阵打印机的Java打印质量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux上点阵打印机的Java打印质量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2648字,纯文字阅读大概需要4分钟。
内容图文
![Linux上点阵打印机的Java打印质量](/upload/InfoBanner/zyjiaocheng/963/183fa3032d6a456aa1ae09a49f507947.jpg)
我需要将报告从Java桌面应用程序打印到点阵打印机(Epson LX-300 II).报告包含文字和一些图形.打印机通过USB连接,我正在使用CUPS进行打印.我正在使用Printable接口进行打印(在Java中非常标准).
我的问题:
每个打印机分辨率(60×60,120×60,120×72)的文本打印质量都非常低.似乎某些打印机驱动程序中没有字体提示.信件看起来很难看.我不能使用直接文本输出端口(它看起来很棒),因为我还需要在同一页面上打印图形.
似乎问题不在Java中,导致相同的应用程序在Windows中打印出高质量的文本和图形.此外,似乎问题不在CUPS系统中,因为OpenOffice或Abiword使用相同的字体打印相同的文本,质量非常好(比在Windows中更差但仍然很好).
问题也不在于字体:我从Windows尝试了Tahoma字体,它也是这样:在java / linux中打印时质量低.
问题不在于X.Org中的BCI提示,在屏幕上显示效果很好.
当我将任何文档从OpenOffice导出到PDF并打印该PDF时,我得到了同样的效果 – 纸上的丑陋的未提示字体.如果从Office打印同一文档,一切正常.
我尝试了不同的Linux(KUbuntu 10.04,Puppy 2,Puppy 4.3.1),我在任何Linux上都有同样的效果.
也许问题出在Ghostscript中,我在Puppy上获得了9.x版本,但仍然是相同的.或者我认为CUPS光栅化器(‘rastertoepson’或’foomatic-rip’)可能存在问题.
这是输出的例子(对不起“移动” – 质量照片):
我不知道发生了什么事,请帮帮我.
–
附:我的最终解决方案是使用’ESCPrinter.java’开源类,根据Epson文档添加打印图像的功能.
解决方法:
你可以试试setRenderingHint;将一些调用复制在一起以便于输入.
也许它是TEXT_ANTIALIASING,但我不会排除其他人.
另一个想法是,某个地方的屏幕分辨率会缩放到打印分辨率;一个小的Java应用程序与自己动手打印将显示.
你没有做旋转,是吗? (只是看到照片).
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
Graphics2D g = (Graphics2D) graphics;
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_DEFAULT);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF);
g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT);
g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_OFF);
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_DEFAULT);
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_SPEED);
g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
return Printable.PAGE_EXISTS;
}
内容总结
以上是互联网集市为您收集整理的Linux上点阵打印机的Java打印质量全部内容,希望文章能够帮你解决Linux上点阵打印机的Java打印质量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。