java 打印收据_使用Java打印到收据打印机时修复文本拉伸
我通过实现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打印到收据打印机时修复文本拉伸相关推荐
- java打印计算机_在Java程序中实现高精度打印
在Java环境中,可以使用 java.awt.Toolkit.getScreenResolution()可以得到屏幕每英寸的象素数,但是好像没有什么方法能知道某一台打印机的分辨率,更别提去控制打印粒度 ...
- java 远程打印机_使用Java打印到网络打印机
我需要发送pdf文档以在Web应用程序的服务器端进行打印,打印机完全支持pdf打印等,它也可以联网到服务器. pdf也存储在服务器上. 我想要的是单击按钮,打印出pdf文件,目前我的代码如下: //S ...
- java银行流水打印系统_基于java实现简单的银行管理系统
页面代码之一: package org.vector.view; import java.awt.Font; import java.awt.event.ActionEvent; import jav ...
- java 字符串包_包java字符串
Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...
- bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道
字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...
- java排班_使用java规则引擎Drools自动排班前言.doc
使用java规则引擎Drools自动排班前言 使用java规则引擎Drools自动排班前言本文以一个经简化的运输车队自动排班需求为例,详细讲解了如何使用java规则引擎Drools进行商业规则的形式语 ...
- java main函数_一行JAVA代码如何运行起来?
在程序员的世界中,你总会听到一句"PHP是世界上最好的语言"的调侃.然而在你进入软件程序开发之后,你会发现即使开发语言千千万,最盛行的还是JAVA.从淘宝的技术变迁中我们可以见一些 ...
- java面向对象课件_《JAVA面向对象基础》PPT课件.ppt
<<JAVA面向对象基础>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<JAVA面向对象基础>PPT课件.ppt(68页珍藏版)>请在人人文库 ...
- java 月份缩写_关于java:如何将日期字符串解析为Date?
本问题已经有最佳答案,请猛点这里访问. 如何将下面的日期字符串解析为Date对象? String target ="Thu Sep 28 20:29:30 JST 2000"; D ...
- java 在线测评_简单java在线测评程序
简单java程序在线测评程序 v一.前言 大家过年好!今年的第一篇博客啊!家里没有网,到处蹭无线!日子过得真纠结!因为毕设的需求,简单写了一个java程序在线测评程序,当然也可以在本地测试. v二.思 ...
最新文章
- MySQL面试题 | 附答案解析(八)
- SOTA论文也未必能被接收,谷歌科学家Eric Jang谈顶会审稿标准
- Oracle Database 11.2.0.1(静默安装)
- event 和 window.event
- ggplot2设置坐标轴范围_ggplot2画图时出现重合的点以及标签如何处理?有现成的包ggrepel
- pip更换源 windows10_Conda及Pip换源处理
- setTimeout setInterval
- 基于SpringJDBC 实现关键功能-QueryRuleSqlBulider
- Jenkins Build Radiators(构建发射源)
- merge into报错ORA-00926、ORA-38014
- 优先级队列之PriorityQueue
- Bit,Byte,WORD,DWORD区别和联系
- java实现远程桌面监控
- 用cmd命令行下载github中的工程文件
- jpg转pdf怎么转换免费
- android相机固定焦距,android - Android相机焦距和焦距不变 - 堆栈内存溢出
- win7底部任务栏还原方法
- 《“边缘计算+”技术白皮书》发布!
- 前端实战:React 多页签缓存处理
- 多邻国(Duolingo)内推,来了!
热门文章
- 美团架构师熬夜整理:Netty权威指南2.0版+英雄传说项目
- h计算机二级基础知识题库,2020计算机二级Office考试题库真题
- Talloc内存池介绍
- 六维空间向量表示法公式笔记
- 西门子触摸屏脚本程序_新手请收藏,超详细的西门子触摸屏设置与编程图文教程...
- 怎么使用java初始化链表_Java链表基本操作和Java.util.ArrayList
- weka mysql_weka连接mysql数据库
- 实现微信支付宝收款到账语音提醒
- 未root的情况下获取墨墨背单词的databases文件夹
- Java中的封装,继承和多态(详解)