java获取总页数_java – 如何获得要打印的总页数?
我设法找到了解决方案.
printDialog()方法显示本机打印对话框,但printDialog(PrintRequestAttributeSet属性)方法显示跨平台对话框.使用用户的选择填写PrintRequestAttributeSet参数,包括选择要打印的页面范围.因此,从printDialog方法返回后,可以查询页面范围,如下面的代码序列:
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new HelloWorldPrinter());
HashPrintRequestAttributeSet printParams = new HashPrintRequestAttributeSet();
boolean ok = job.printDialog(printParams);
if (ok) {
PageRanges pageRanges = (PageRanges) printParams.get(PageRanges.class);
int pagesToBePrinted = getNumberOfPages(pageRanges);
try {
job.print(printParams);
} catch (PrinterException e) {
/* The job did not successfully complete */
}
}
请注意,printParams也必须提供给print()方法.从PageRanges对象,可以以数组格式获得页面范围,即,1长度数组的数组,每个数组意味着单个页面,或者2个长度数组,意味着连续的页面范围.有关详细信息,请参阅javadoc.计算总页数非常简单:
int getNumberOfPages(PageRanges pageRanges) {
int pages = 0;
int[][] ranges = pageRanges.getMembers();
for (int i = 0; i < ranges.length; i++) {
pages += 1;
if (ranges[i].length == 2) {
pages += ranges[i][1] - ranges[i][0];
}
}
pages = Math.min(pages, totalPagesOfDocument);
return pages;
}
如果用户没有选择页面范围,而是选择“所有页面”选项,则PageRanges将包含范围(1,Integer.MAX_VALUE).所以我说如果计算出的值超过了文档的页数,那么要打印的页数就是文档页面的总数(我希望你从某个地方知道).
该算法可能有点过分,因为PageRanges可能只是一个简单的n-m范围,但比抱歉更安全.
java获取总页数_java – 如何获得要打印的总页数?相关推荐
- java mysql jsp分页代码_JAVA/JSP学习系列之六(MySQL翻页例子)
JAVA/JSP学习系列之六(MySQL翻页例子) 更新时间:2006年10月13日 00:00:00 作者: 一.运行前准备 下载了mysql的jdbc驱动(一个jar文件)并加载在CLASSP ...
- java获取当前年月日历_java万年历,获取该年月日历表
这篇文章主要介绍了java获取对应年月分日历表有需要的朋友可以来参考下 这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表 1 ...
- java 获取当前月日_Java获取当前时间年月日的方法
本文实例为大家分享了java获取当前时间年月日的具体代码,供大家参考,具体内容如下 import java.text.ParseException; import java.text.SimpleDa ...
- java 获取手机归属地_java 获取手机归属地
java 获取手机归属地 [2021-01-30 20:46:44] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...
- java获取当前日期 星期几_java获取当前日期是星期几的方法
java获取当前日期是星期几的方法 发布时间:2020-06-29 11:16:15 来源:亿速云 阅读:133 作者:Leah 本篇文章为大家展示了java获取当前日期是星期几的方法,代码简明扼要并 ...
- java 获取下一年_JAVA获取下一年,下个月,下一天;月份为何以0开始?
JAVA获取下一年,下个月,下一天:月份为何以0开始? JAVA获取下一年,下个月,下一天:月份为何以0开始? 活不多说,直接上代码: public static void main(String[] ...
- java 获取日期格式化时间_java获取当前时间并格式化
java获取当前时间并格式化 private static final DateTimeFormatter FORMAT_FOURTEEN = DateTimeFormatter.ofPattern( ...
- java获取字符的编码_java获取文本文件字符编码的方法
java获取文本文件字符编码的方法 发布时间:2020-06-16 09:56:08 来源:亿速云 阅读:386 作者:Leah 这篇文章将为大家详细讲解有关java获取文本文件字符编码的方法,小编觉 ...
- java 获取json的值_Java如何获取JSON数据中的值
场景:在接口自动化场景中,下个接口发送的请求参数,依赖上个接口请求结果中的值.需要将获取值作为全局参数引用. import java.io.File; import java.io.FileInput ...
最新文章
- Keepalived Nginx 高可用性配置
- mysql正在加载_本地坏境或者服务器环境下phpmyadmin出现始终正在加载问题的解决方法...
- Keras【Deep Learning With Python】keras框架下的MNIST数据集训练及自己手写数字照片的识别(分类神经网络)
- python 可变参数 关键字参数_Python关键字及可变参数*args,**kw原理解析
- 细节优化提升资源利用率
- BugkuCTF-Misc:Linux
- 【原创】mysql数据库异常:data truncate for column “*” at row *;data too long *。原因,及解决。...
- 工作58:element三级列表的问题
- 让计算机等待的函数_第56p,装饰器,闭包函数的应用
- jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等...
- js 判断 ““,null,undefined
- 活动报名 | 苏州工业园区领军人才项目申报宣讲对接会
- skynet源码阅读7--死循环检测
- 将 MySQL 数据库恢复到某个时间点
- 学习笔记——直流电机调速器
- sqlmap自动化注入工具使用浅析
- Python 猴子补丁
- 物体尺寸测量-matlab
- 第1节 基本数据类型分析
- linux获取android界面,Android中 adb shell ps 查看手机中进程信息
热门文章
- goodsync文件服务器,GoodSync Enterprise Server Windows服务器版
- vivox7android9,vivox9和x7哪个好 vivox9和x7区别对比
- android给view的overlay添加bitmap
- 美容院在短信平台的应用指南
- DDCTF2018逆向 黑盒
- 各平台爆款产品清单大合集!年底冲刺看这里!
- 华为荣耀服务器浏览网页卡,华为荣耀6PLUS手机信号很好但是网速很慢的解决办法...
- 国仁网络资讯:快手小店通投放转化效果怎么样;快手小店通的优势好处有什么。
- SIMATIC Net介绍
- “通信”千万条,安全第一条 — SIMATIC WinCC 安全通信技术分享