• 一个页拆分多个页,按照流水
String bank = "{\n" +
"\t\"bank\" : [\n" +
"\t\t{\n" +
"\t\t\t\"name\" : \"中国农业银行\",\n" +
"\t\t\t\"tableWidth\" : 279,\n" +
"\t\t\t\"split\" : 3\n" +
"\t\t},\n" +
"\t\t{\n" +
"\t\t\t\"name\" : \"中国银行\",\n" +
"\t\t\t\"tableWidth\" : 420,\n" +
"\t\t\t\"split\" : 2\n" +
"\t\t},\n" +
"\t\t{\n" +
"\t\t\t\"name\" : \"中国工商银行\",\n" +
"\t\t\t\"tableWidth\" : 414,\n" +
"\t\t\t\"split\" : 2\n" +
"\t\t}\n" +
"\t]\n" +
"}\n"; JSONObject jsonObject = JSONObject.parseObject(bank);
List<JSONObject> jsonObjectList = (List<JSONObject>) JSONPath.read(bank, "$bank[?(@.name='中国工商银行')]"); String filename = jsonObjectList.get(0).getString("name");
Integer tableWidth = jsonObjectList.get(0).getInteger("tableWidth");
Integer split = jsonObjectList.get(0).getInteger("split"); try (InputStream resource = new FileInputStream(new File("c:\\" + filename + ".pdf"));
OutputStream result = new FileOutputStream(new File("c:\\" + filename + "-split.pdf"))) {
Abstract2DPdfPageSplittingTool tool = new Abstract2DPdfPageSplittingTool() {
@Override
protected Iterable<Rectangle> determineSplitRectangles(PdfReader reader, int page) {
Rectangle targetSize = PageSize.A4;
List<Rectangle> rectangles = new ArrayList<>();
float pageHeight = targetSize.getHeight();
float pageWidth = targetSize.getWidth();
for (int i = 0; i < split; i++) {
rectangles.add(new Rectangle(0, pageHeight, pageWidth, pageHeight - tableWidth));
pageHeight = pageHeight - tableWidth;
}
return rectangles;
}
};
tool.split(result, new PdfReader(resource));
}

最新文章

  1. iOS创建自定义的xib视图,不带控制器调用
  2. MVVM ObservableCollection&lt;&gt; ListView
  3. 软件测试第三次作业——7.使用下面方法printPrimes()完成后面的问题(a)~(f)
  4. Hibernate &lt;一级缓存&gt;
  5. jsnop
  6. [转]Java多线程干货系列—(一)Java多线程基础
  7. jquery】常用的jquery获取表单对象的属性与值
  8. Swift Json 解析错误
  9. nginx支持url的PATHINFO
  10. CentOS 7.0 systemd代替service
  11. ibatis 学习笔记 3 - pfpfpfpfpf的专栏 - 博客频道 - CSDN.NET
  12. Vue子组件与父组件之间的通信
  13. Oracle SQL 部分特殊字符转义及escape的用法
  14. 通过jpa getResultList 获取查询到的内容
  15. Spring Batch JSON 支持
  16. get与load方法
  17. PLSQL Developer 客户端没有TNS监听,无法连接数据库
  18. htmlDOM树
  19. nodejs系列笔记02---模块路径解析
  20. 如何将Virtualbox和VMware虚拟机相互转换[译文211] - 转

热门文章

  1. 此平台不支持虚拟化的 Intel VT-x/EPT。不使用虚拟化的 Intel VT-x/EPT,是否继续?
  2. CF1534F2 Falling Sand (Hard Version)
  3. Windows Server 2012 R2安装.NET Framework4.7.1
  4. Joseph Problem With Passwords In Java
  5. python+requests 验证码登录
  6. JS根据分数,计算名次(分数相同名次相同)
  7. Swift中 堆(heap)和栈(stack)的区别
  8. python 发送 application/x-www-form-urlencoded 类型的数据包
  9. CSS3-3D导航(transform:rotate)
  10. uniapp使用rich-text内容过长在真机无法滚动