我通过实现Java Printable并将我的代码放入print方法打印到一些Epson收据打印机 . 要将文本绘制到打印机,我使用Graphics2D.drawString . 我还在打印机上绘制一个矩形,以查看在打印到其他打印机时如何与文本大小进行比较 . 打印到收据打印机时,纸张上的文本大约是打印到激光打印机或XPS刻录机虚拟打印的宽度的两倍 . 这是Java向Graphics2D对象绘制文本的方式的问题吗?我有最新版本的Java安装6更新20 .

任何想要研究的想法都会有所帮助 .

谢谢 .

这是我正在使用的代码 . 在这个例子中,当我将它发送到XPS编写器时,我看到矩形右边缘的字母'c',如果我将它打印到我的收据打印机,那么6就在rect的右边缘,你可以告诉文字它应该比它宽得多 . rect似乎是正确的大小 .

我已经尝试更改页面和边距大小,但似乎没有解决我的文本问题 . 我从Microsoft Word自动检测打印机的方式中获得了这些纸张尺寸和边距 . Word将文本正确打印到收据打印机 .

public static void main(String[] args) {

PageFormat format = new PageFormat();

Paper paper = new Paper();

double paperWidth = 3.25;

double paperHeight = 11.69;

double leftMargin = 0.19;

double rightMargin = 0.25;

double topMargin = 0;

double bottomMargin = 0.01;

paper.setSize(paperWidth * 72.0, paperHeight * 72.0);

paper.setImageableArea(leftMargin * 72.0, topMargin * 72.0,

(paperWidth - leftMargin - rightMargin) * 72.0,

(paperHeight - topMargin - bottomMargin) * 72.0);

format.setPaper(paper);

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

aset.add(OrientationRequested.PORTRAIT);

PrinterJob printerJob = PrinterJob.getPrinterJob();

Printable printable = new ReceiptPrintTest();

format = printerJob.validatePage(format);

printerJob.setPrintable(printable, format);

try {

printerJob.print(aset);

}

catch (Exception e) {

e.printStackTrace();

}

}

public class ReceiptPrintTest implements Printable {

public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {

if (pageIndex < 0 || pageIndex >= 1) {

return Printable.NO_SUCH_PAGE;

}

Graphics2D g2d = (Graphics2D) graphics;

g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());

Font font = new Font("Arial",Font.PLAIN, 14);

g2d.setFont(font);

g2d.drawString("1234567890abcdefg", 50, 70);

g2d.drawRect(50, 0, 100, 50);

return Printable.PAGE_EXISTS;

}

java 打印收据_使用Java打印到收据打印机时修复文本拉伸相关推荐

  1. java打印计算机_在Java程序中实现高精度打印

    在Java环境中,可以使用 java.awt.Toolkit.getScreenResolution()可以得到屏幕每英寸的象素数,但是好像没有什么方法能知道某一台打印机的分辨率,更别提去控制打印粒度 ...

  2. java 远程打印机_使用Java打印到网络打印机

    我需要发送pdf文档以在Web应用程序的服务器端进行打印,打印机完全支持pdf打印等,它也可以联网到服务器. pdf也存储在服务器上. 我想要的是单击按钮,打印出pdf文件,目前我的代码如下: //S ...

  3. java银行流水打印系统_基于java实现简单的银行管理系统

    页面代码之一: package org.vector.view; import java.awt.Font; import java.awt.event.ActionEvent; import jav ...

  4. java 字符串包_包java字符串

    Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...

  5. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  6. java排班_使用java规则引擎Drools自动排班前言.doc

    使用java规则引擎Drools自动排班前言 使用java规则引擎Drools自动排班前言本文以一个经简化的运输车队自动排班需求为例,详细讲解了如何使用java规则引擎Drools进行商业规则的形式语 ...

  7. java main函数_一行JAVA代码如何运行起来?

    在程序员的世界中,你总会听到一句"PHP是世界上最好的语言"的调侃.然而在你进入软件程序开发之后,你会发现即使开发语言千千万,最盛行的还是JAVA.从淘宝的技术变迁中我们可以见一些 ...

  8. java面向对象课件_《JAVA面向对象基础》PPT课件.ppt

    <<JAVA面向对象基础>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<JAVA面向对象基础>PPT课件.ppt(68页珍藏版)>请在人人文库 ...

  9. java 月份缩写_关于java:如何将日期字符串解析为Date?

    本问题已经有最佳答案,请猛点这里访问. 如何将下面的日期字符串解析为Date对象? String target ="Thu Sep 28 20:29:30 JST 2000"; D ...

  10. java 在线测评_简单java在线测评程序

    简单java程序在线测评程序 v一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. v二.思 ...

最新文章

  1. 乌鸦可能是灵长类动物以外最聪明的动物
  2. cacti监控下添加对磁盘io的监控方法(Linux主机和Windows主机)
  3. 知识图谱学习小组学习大纲
  4. spark on k8s准确完整的测试步骤:提交Pi计算程序至k8s集群
  5. Java设计模式之结构型:装饰器模式
  6. Golang——垃圾回收GC
  7. RHQ指标的WildFly子系统
  8. mysql使用条件限制乐观锁_使用Mysql乐观锁解决并发问题
  9. javascript阻止事件冒泡和浏览器的默认行为
  10. CorelDRAWX4的VBA插件开发(十九)渲染显示开关
  11. cesium添加高德路网中文注记图及高德在线地图介绍
  12. Where子句常用查询条件
  13. android安卓-子线程计时器TimeCountThread-时分秒-实用功能系列
  14. matlab模拟塞曼图谱,C.基于LabVIEW的塞曼效应虚拟仿真-中国高等学校实验物理教学研究会.ppt...
  15. 苹果手机10秒解除锁屏_苹果密码忘了不想刷机怎么办_苹果手机10秒解除锁屏
  16. 解决“应用程序正常初始化(0x00000005)失败”错误
  17. 对IBL的specular部分的思考
  18. 十年Java架构师分享
  19. C#编写上位机连接华为云平台IoTDA
  20. 内存映射文件之剖析(一)

热门文章

  1. 为虚幻4安装VS2019
  2. 功能性能服务器图标,SQL Server服务器的图标及其功能
  3. Apollo详解之canbus模块——车辆底层协议调试
  4. FBA4droid 模拟器
  5. 为期45天的记忆训练
  6. java希尔密码,希尔
  7. 电子设计教程22:虚短与虚断
  8. 使用rmmod无法卸载驱动,强制卸除的两种方法
  9. 解决Xshell6 Xftp 6 强制更新,无法更新使用问题
  10. 华为hcia认证有哪些方向?华为hcia认证哪些方向比较好,值得推荐?