java PDF分页打印
将获取的pdf文件按页拆分:参考https://q.cnblogs.com/q/99944/
pdf文件有多页,第一页需设置横向打印,其他页设置为纵向打印。
PDDocument document = PDDocument.load(new File(filePath));
Splitter splitter = new Splitter();
List<PDDocument> pages = splitter.split(document);
ListIterator<PDDocument> iterator = pages.listIterator();
int i = 1;
while (iterator.hasNext()) {
PrintService service =
PrintServiceLookup.lookupDefaultPrintService();
PDDocument pd = iterator.next();
boolean isSuc = PrintUtil.printWithAttributes(pd, service,i);
i++;
System.out.println(isSuc+"----------------------打印服务");
}
public static boolean printWithAttributes(PDDocument document, PrintService service, int i) {
try {
PrinterJob job = PrinterJob.getPrinterJob();
//设置打印机 不设置,则使用默认打印机
job.setPrintService(service);
PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
if (i == 1) {
//设置横向打印
attr.add(OrientationRequested.LANDSCAPE);
}
// attr.add(MediaSizeName.ISO_A5); //设置纸张类型
print(document, job, attr);
return true;
} catch (Exception e) {
return false;
} } private static void print(PDDocument document, PrinterJob job, PrintRequestAttributeSet attr)
throws IOException, PrinterException {
PDFPrintable printable = new PDFPrintable(document, Scaling.SCALE_TO_FIT);
job.setPrintable(printable);
job.print(attr);
}
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.8</version>
</dependency>
java PDF分页打印的更多相关文章
- 用SumatraPdf实现PDF静默打印
原文:https://yutuo.net/archives/24a22d50d6001564.html 之前做一系统,有一个打印PDF文件的需求,需求如下: 能指定打印机 能两面打印 最好能静默打印 ...
- 使用ScriptX控件实现IE浏览器分页打印功能
之前讲过js调用ie浏览器自带打印的用法,今天讲使用插件的方式.浏览器自带打印不能控制页边距.页眉页脚等选项,尤其是如果分页打印的话,无法自动将前一页标题带到本页,所以不适用多页打印的功能.使用Scr ...
- ITextRenderers html生成pdf 分页+横向
1.pdf横向生成问题:格式化html是加上 @page{size:297mm 210mm;} public static String formatPdfHtml(String html,Strin ...
- Java 动态分页类
动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...
- js实现网页打印分页打印
web打印思路:html页面本身带有打印功能window.print() 但是在打印时又不能word模板的要求来打印不能满足打印需求.同时我们打印的数据有时候是动态变化的需要按模板来打印我的处理方式是 ...
- 应用CSS的page-break-after属性 实现WEB页面强制分页打印
虽然dedecms.com向大家介绍了很多CSS属性的相关知识,但有些非常冷门的属性还是有所欠缺.在B/S程序中,对打印页面的控制,CSS相对比较弱,例如: 自动分页, 就基本没啥实际用途.我们通常需 ...
- flex 分页打印表格功能
private function printHandler():void{ var printJob:FlexPrintJob = new FlexPrintJob(); printJob.print ...
- AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)
这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...
- java PDF添加图层,支持多页图层添加
java PDF添加图层,支持多页图层添加 代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...
随机推荐
- OS + CentOS cmake
s Linux编译安装cmake最新版本 https://blog.51cto.com/sadoc/1910753 https://cmake.org/download/ https://github ...
- 老男孩Python全栈学习 S9 日常作业 010
1.写函数,接收n个数字,求这些参数数字的和. def func1(*Num): num = 0 for i in Num: num += i return num 2.读代码,回答:代码中,打印出来 ...
- ModBus-RTU详解
Modbus 一个工业上常用的通讯协议.一种通讯约定.Modbus协议包括RTU.ASCII.TCP.其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现.虽然RTU比较简单,但是看协议 ...
- 永续公债(or统一公债)的麦考利久期(Macaulay Duration)的计算
- 命令链接按钮QCommandLinkButton
继承QPushButton 它的用途类似于单选按钮的用途,因为它用于在一组互斥选项之间进行选择,命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮的替代选项,外观通常类似于平面按钮的外观,但除了 ...
- centos6.5 配置静态IP
1.修改网卡配置 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static HWADDR=08:00:2 ...
- JS判断页面是在浏览器还是微信打开
一.Navigator对象 1.获取用户的浏览器信息. let ua = navigator.userAgent.toLowerCase(); 打印一下ua的结果: Mozilla/5.0 (Maci ...
- python 类的魔法函数 内置函数 类方法 静态方法 抽象类
魔法函数 __init__函数 init函数会在实例化A这个类的时候被调用 class A(): def __init__(self): print('__init__函数') a = A() 显示结 ...
- day06 字典、元组、set的方法及常用操作
今日内容: 1.深浅拷贝 2.元组 3.字典 4.set 1.深浅拷贝 # 1.值拷贝 # 采用赋值的方法进行 # 只会将堆区容器变量与栈区的绑定关系进行复制 # 2.浅拷贝 # 会将堆区与栈区的绑定 ...
- npm 如何安装npm包
1.每个插件或者组件都会在官方网站有教程. 以https://v4.bootcss.com 为例 2.vuetify的 3.moment 的库