将获取的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分页打印的更多相关文章

  1. 用SumatraPdf实现PDF静默打印

    原文:https://yutuo.net/archives/24a22d50d6001564.html 之前做一系统,有一个打印PDF文件的需求,需求如下: 能指定打印机 能两面打印 最好能静默打印 ...

  2. 使用ScriptX控件实现IE浏览器分页打印功能

    之前讲过js调用ie浏览器自带打印的用法,今天讲使用插件的方式.浏览器自带打印不能控制页边距.页眉页脚等选项,尤其是如果分页打印的话,无法自动将前一页标题带到本页,所以不适用多页打印的功能.使用Scr ...

  3. ITextRenderers html生成pdf 分页+横向

    1.pdf横向生成问题:格式化html是加上 @page{size:297mm 210mm;} public static String formatPdfHtml(String html,Strin ...

  4. Java 动态分页类

     动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...

  5. js实现网页打印分页打印

    web打印思路:html页面本身带有打印功能window.print() 但是在打印时又不能word模板的要求来打印不能满足打印需求.同时我们打印的数据有时候是动态变化的需要按模板来打印我的处理方式是 ...

  6. 应用CSS的page-break-after属性 实现WEB页面强制分页打印

    虽然dedecms.com向大家介绍了很多CSS属性的相关知识,但有些非常冷门的属性还是有所欠缺.在B/S程序中,对打印页面的控制,CSS相对比较弱,例如: 自动分页, 就基本没啥实际用途.我们通常需 ...

  7. flex 分页打印表格功能

    private function printHandler():void{ var printJob:FlexPrintJob = new FlexPrintJob(); printJob.print ...

  8. AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)

    这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...

  9. java PDF添加图层,支持多页图层添加

     java PDF添加图层,支持多页图层添加 代码: import java.io.File; import java.io.FileOutputStream; import java.io.IOEx ...

随机推荐

  1. [源码分析]StringBuilder

    [源码分析]StringBuilder StringBuilder是继承自AbstractStringBuilder的. 这里附上另外两篇文章的连接: AbstractStringBuilder :  ...

  2. S2-045漏洞初步分析

    0x01 前言 前几天刚分析完s2-032这个漏洞,今天又爆发了一个s2-045的漏洞,又是直接的命令执行,影响了struts2绝大多数的版本. 官方给的漏洞公告在这里   https://cwiki ...

  3. return *this和return this有什么区别?

    return *this返回的是当前对象的克隆或者本身(若返回类型为A, 则是克隆, 若返回类型为A&, 则是本身 ). return this返回当前对象的地址(指向当前对象的指针). 转: ...

  4. @Autowired和@Resource注解的一个意外重要区别

    今天上午,因为公司要跟客户展示最近开发的项目,然后安排了我重新构建一个template项目,用来向客户展示参考.基于已开发好的代码,我在进行一些简化抽取的时候出现了一个有趣的问题 因为我们有一个spr ...

  5. Faster R-CNN

    1.R-CNN R-CNN网络架构图 R-CNN网络框架流程 1)原图像经过 selective search算法提取约2000个候选框 2)候选框缩放到同一大小,原因是上图的ConvNet需要输入图 ...

  6. 你循环的时候就可以给他们赋值了,那么就不用addClass,再根据类选择器处理,代码能一气呵成就别写成两段了

    function onCopyButtonClick() { $(".index:checked").each(function () { $(] + "__WeekCo ...

  7. 管理外部表(External Tables)

    Oracle数据库允许对外部表中的数据进行只读访问.外部表定义为不驻留在数据库中的表,并且可以是为其提供访问驱动程序的任何格式.通过为数据库提供描述外部表的元数据,数据库能够公开外部表中的数据,就好像 ...

  8. Sublime Text 3删除插件

    Ctrl+Shift+P调出命令窗口,输入remove: 选择第二个Remove Package,会看到如下界面: 里面列出了你已经安装的插件,之后选择你想要卸载的就好了.

  9. Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    https://www.jb51.net/article/133836.htm 搭建服务器之后只能看见test与infomation_schema两个库 https://www.cnblogs.com ...

  10. SpringJUnit4ClassRunner (单元测试)

    1.在Maven的pom.xml中加入 <dependency> <groupId>junit</groupId> <artifactId>junit& ...