Java读取打印机自定义纸张.
打印出现截断?
对于自定义纸张打印, 一定要先在打印机配置那边添加, 不然会出现截断.
例如打印1000*500, 出来是正常的, 打印216*139, 出现了截断.
因为java默认的打印, 会从打印机纸张里寻找相近的纸张进行匹配,
如果没有添加自定义纸张, 可能找出来的是别的纸张.

添加自定义纸张
分为两种
打印机支持直接自定义纸张设置
打开控制面板, 选择查看设备和打印机, 选中指定打印机, 右键打印机首选项.
在纸张规格后面可以直接添加自定义纸张.

打印机不支持直接设置
例如Windows自带的Microsoft XPS Document Writer, 右键打印机首选项里是没有自定义纸张的.
这时可以通过选中打印机, 点击菜单栏上方的打印机服务器属性, 勾选 创建新纸张规格. 最后记得要点 保存规格.

Java读取自定义纸张
通过java直接调用打印机, 弹出来打印机设置窗口, 里面有个选择打印机以及纸张的界面.

既然java自带的对话框里可以读到, 我们可以到他的源码里直接摘抄一下.
源码位于sun.print.ServiceDialog.
PrintService printer = PrintServiceLookup.lookupDefaultPrintService();
Media[] objs = (Media[]) printer.getSupportedAttributeValues(Media.class, null, null);
for (Media obj : objs) {
if (obj instanceof MediaSizeName) {
System.out.println("纸张型号:" + obj);
} else if (obj instanceof MediaTray) {
System.out.println("纸张来源:" + obj);
}
}
log结果如下

注意: java读取纸张有个限制, 那就是默认纸张 高度 >= 宽度.
如果设置了100*50的纸张, 是读不到的, 因为他默认这个是50*100的横向展示.
若需要打印自定义纸张, 参加另外一篇博客 使用PDFBox打印自定义纸张的PDF
Java读取打印机自定义纸张.的更多相关文章
- Java调用PDFBox打印自定义纸张PDF
打印对象 一份设置为A3纸张, 页面边距为(10, 10, 10, 10)mm的PDF文件. PageFormat 默认PDFPrintable无法设置页面大小. PDFPrintable print ...
- Java实现POS打印机自定义无驱打印
Java实现POS打印机自定义无驱打印 热敏打印机使用越来越广泛,而安装驱动相当复杂,万幸的是,几乎所有的热敏打印机都支持ESC/P指令,参考网络上一些资料后,在此整理了一份自定义打印的方案 • 打印 ...
- 利用ActiveX实现web页面设置本地默认打印机、纸张大小
通常web技术无法设置本地计算机的默认打印机,包括用代码设置纸张大小,如果业务系统中真遇到这种需求,只能通过其它辅助手段(比如ActiveX)实现.下面这段代码,出自网上被广泛使用的"泥人张 ...
- c# PrintDocument 设置自定义纸张大小的示例
.Net 提供的打印类PrintDocument 非常简洁易用,不过在实际应用开发中往往需要对纸张进行自定义,尤其是需要进行票据打印时.这个问题也困扰了我许久,经过查阅相关的资料和多次尝试,发现 其实 ...
- [Q]自定义纸张大小
问:当打印机纸张列表里没有符合要求的纸张大小,例如如何打印加长图?答:当打印非标准图框时,你可能在图纸列表里找不到想要纸幅.你需要自己新建你需要的纸幅,以pdfFactory虚拟打印机为例(其它打印机 ...
- Java读取并下载网络文件
CreateTime--2017年8月21日10:11:07 Author:Marydon import java.io.ByteArrayOutputStream; import java.io ...
- C#调用windows api控制打印机 状态获取 打印 自定义纸张 完整版
using System; using System.Text; using System.Runtime.InteropServices; using System.Security; using ...
- Java读取CSV和XML文件方法
游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...
- java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)
java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...
随机推荐
- Java设计模式探讨之单例模式
单例模式是在平时的项目开发中比较常见的一种设计模式,使用比较普遍,网上的资料也是一抓一大把,小Alan也来凑凑热闹,为以后充实点设计模式相关的内容做个简单的开篇. 单例模式是一种创建对象的模式,用于产 ...
- 关联查询一张小表。对性能有影响吗(mysql)
具体语句 SELECT dfm.id, dfm.member_code, dfm.member_name, dfm.recommend_code, dfm.member_rank, dfm.cre ...
- code forces 439 C. The Intriguing Obsession
C. The Intriguing Obsession time limit per test 1 second memory limit per test 256 megabytes input s ...
- Android 开发笔记___SD卡基本操作
package com.example.alimjan.hello_world; /** * Created by alimjan on 7/5/2017. */ import android.ann ...
- media query 单位
使用em 判断的media query 在用户缩放的时候不会被破坏,使用em更加合适内容为王的页面趋势 内容的容器需要根据内容而按比例设置,就像line-height:1.14em,文字大小的1. ...
- Oracle-4 - :超级适合初学者的入门级笔记:plsql,基本语法,记录类型,循环,游标,异常处理,存储过程,存储函数,触发器
初学者可以从查询到现在的pl/sql的内容都可以在我这里的笔记中找到,希望能帮到大家,视频资源在 资源, 我自己的全套笔记在 笔记 在pl/sql中可以继续使用的sql关键字有:update del ...
- wordpress搬家到 linode 步骤简析
1. 购买并安装系统 购买就不说了哈,英文不好的自己搜教程. 然后是安装系统 linode 系统安装: 购买完成后登录,进入找到购买的vps ,点击 Dashboard (控制面板) 进入后点击 面板 ...
- 如何部署Java_web项目到云服务器上
步骤 1:购买 Linux 实例(略) 步骤2:安装JDK 本节介绍如何安装java jdk. 软件包中包含的软件及版本如下: Tomcat:1.8.0_121 说明:这是写文档时参考的软件版本.您下 ...
- word建立统一的表格样式
插入一个表格,一般border都是一样粗细,不美观, 这里推荐一种样式如下图(外框和首行都加粗,比较好看) 设置方法: 1.选中表格,上方出现设计选项卡 2.表格样式,点击"新建样式表&qu ...
- SAXParserFactory
Defines a factory API that enables applications to configure and obtain a SAX based parser to parse ...