返回首页
当前位置: 主页 > 编程语言 > JAVA教程 >

java合并PDF(iText)实现代码

时间:2016-09-28 19:59来源:电脑教程学习网 www.etwiki.cn 编辑:admin

import java.io.FileOutputStream;
2.import java.io.IOException;
3.import com.lowagie.text.Document;
4.import com.lowagie.text.DocumentException;
5.import com.lowagie.text.pdf.PdfCopy;
6.import com.lowagie.text.pdf.PdfImportedPage;
7.import com.lowagie.text.pdf.PdfReader;
8.
9.public class MergeFile {
10. public static void main(String[] args) {
11. String[] files = { "e:\\1.pdf", "e:\\2.pdf", "e:\\3.pdf" };
12. String savepath = "e:\\temp.pdf";
13. mergePdfFiles(files, savepath);
14. }
15.
16. /**
17. * @Description: 合并PDF文件
18. * @param files: 要合并文件数组(绝对路径如{ "e:\\1.pdf", "e:\\2.pdf","e:\\3.pdf"})
19. * @param newfile: 合并后新产生的文件绝对路径.如e:\\temp.pdf
20. * @return boolean: 产生成功返回true,否则返回false
21. */
22. public static boolean mergePdfFiles(String[] files, String newfile) {
23. boolean retValue = false;
24. Document document = null;
25. try {
26. document = new Document(new PdfReader(files[0]).getPageSize(1));
27. PdfCopy copy = new PdfCopy(document, new FileOutputStream(newfile));
28. document.open();
29. for (int i = 0; i < files.length; i++) {
30. PdfReader reader = new PdfReader(files[i]);
31. int n = reader.getNumberOfPages();
32. for (int j = 1; j <= n; j++) {
33. document.newPage();
34. PdfImportedPage page = copy.getImportedPage(reader, j);
35. copy.addPage(page);
36. }
37. }
38. retValue = true;
39. } catch (Exception e) {
40. e.printStackTrace();
41. } finally {
42. document.close();
43. }
44. return retValue;
45. }
46.}

------分隔线----------------------------
标签(Tag):java java技巧 java实例教程 java源代码 java基础教程
------分隔线----------------------------
推荐内容
  • IDEA初始化配置 图解教程

    使用JetBrains IDEA已经两个月了,今天给我自动升级了,但是一直报一个错误(大致就是...

  • java中数组转为列表的几种方法

    java中数组转为集合List,是很基础常见的,日常开发中也经常会用到,今天整理了下,有...

  • java常用设计模式-策略设计模式

    java中常用的设计模式如单例模式、原型模式,这在之前的2篇文章中已经说明,还有代理...

  • Java开发规范

    编码规范就如同协议,有了Http、TCP等各种协议,计算机之间才能有效地通信,同样的,...

  • java泛型那些事

    泛型的类型安全性 有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创...

  • HdfsSink原理解析

    我们先了解几个概念: batchSize sink从channel中取batchSize数量的event才会flush,sy...

猜你感兴趣