`
lgtq1983
  • 浏览: 100203 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Itext.jar合并PDF文件

    博客分类:
  • Java
 
阅读更多
package com.pdf; 

import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 

import com.lowagie.text.Document; 
import com.lowagie.text.DocumentException; 
import com.lowagie.text.pdf.PdfCopy; 
import com.lowagie.text.pdf.PdfImportedPage; 
import com.lowagie.text.pdf.PdfReader; 

/** 
* 导入itext-1.3.1.jar,合并PDF文件 
*/ 
public class CreatePdf 
{ 
    
    /** 
     * 得到生成的PDF文件(多个合并) 
     * @param savepath 文件保存的路径 
     * @param rName 报表名称 
     * @param files 生成的文件 
     * @return String 
     */ 
    public String getPDF(String savepath, String rName, String[] files) 
    { 
        String getResultName = null; 
        savepath = savepath + rName + ".pdf"; 
        //如果是多个PDF文件进行合并 
        if (files.length > 1) 
        { 
            //多个PDF文件合并 
            mergePdfFiles(files, savepath); 
            getResultName = savepath.subSequence(savepath.lastIndexOf("/"), 
                    savepath.length()).toString(); 
        } 
        else 
        { 
            if (reNameFile(files, savepath)) 
            { 
                getResultName = rName + ".pdf"; 
            } 
        } 
        return getResultName; 
    } 
    /** 
     * 多个PDF合并功能 
     * @param files 多个PDF的路径 
     * @param savepath 生成的新PDF路径 
     * @return boolean boolean 
     */ 
    public static boolean mergePdfFiles(String[]files,String savepath) 
    { 
        try 
        { 
            Document document = new Document(new PdfReader(files[0]).getPageSize(1));            
            PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath));            
            document.open(); 
            for (int i = 0; i < files.length; i++) 
            {              
                PdfReader reader = new PdfReader(files[i]);                
                int n = reader.getNumberOfPages();          
                for (int j = 1; j <= n; j++) 
                {                   
                    document.newPage(); 
                    PdfImportedPage page = copy.getImportedPage(reader, j);                    
                    copy.addPage(page); 
                }              
            } 
            document.close(); 
            return true; 
        } 
        catch (IOException e) 
        { 
            e.printStackTrace(); 
            return false; 
        } 
        catch (DocumentException e) 
        { 
            e.printStackTrace(); 
            return false; 
        } 
    } 
    
    /** 
     * 文件重命名 
     */ 
    public static boolean reNameFile(String []oldName,String newName) 
    { 
        File oldfile = null; 
        if (oldName != null) 
        { 
            for (int i = 0;i < oldName.length;i++) 
            { 
                oldfile = new File(oldName[i]); 
            } 
            if (oldfile == null) 
            { 
                return false; 
            } 
            File newfile = new File(newName); 
            if (oldfile.renameTo(newfile)) 
            { 
                return true; 
            } 
        } 
        return false; 
    } 
    
    public static void main(String[] args) 
    { 
        String saveLocation = "D://temp/"; 
        String reportName = "用户流量分布"; 
        String files[] = new String[] {"D:/temp/aa.pdf","D:/temp/bb.pdf"}; 
        new CreatePdf().getPDF(saveLocation, reportName, files); 
        
    } 
    
} 

 

分享到:
评论

相关推荐

    java itext生成PDF文件

    itextpdf-5.5.10.jar、itext-asian-5.2.0.jar、iText中文帮助、iText英文帮助文档 以及生成PDF文件时生成表格时单元格合并处理方法

    Java 使用iText7生成带页码的PDF文件(同时生成目录,但是不会合并两个PDF)

    gradle项目,首次使用请先下载jar包(右键项目→Gradle→Refresh),不然报错!

    Java实现PDF读写(Itext)与解析XML读写(Dom4j)

    生成PDF文件,引用到的JAR包是itext5.5.1 项目文件为PDFText.java 主要实现功能: 1、创建一个PDF文件:HelloWorld.pdf,给文档设置加密,密码为zhouyl或111 2、将PDF文件压缩成ZIP文件 3、生成一个PDF文件D:\\...

    java html模板 itext 生成pdf 页眉页脚 合并pdf列子

    搜索了好多篇例子,算是强拼硬凑成现在的...此包中包含可测试成功代码,关联模板、字体文件、jar等 希望能帮助到大家。 这篇文章的作者蛮厉害,有不少借鉴。 http://blog.csdn.net/layman1024/article/details/74628658

    Java PDF合并代码

    Java用iText合并两个PDF文件,包含java代码及所用jar包。

    java范例开发大全(pdf&源码)

    实例137 读取PDF文件中的内容 203 实例138 用iText生成Word文件 205 实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例182 简单的文件合并工具 231 8.2 泛型使用的简介 233 实例183 自定义非泛型栈结构 233 实例184 使用泛型实现栈结构 234 实例185 自定义泛型化数组类 235 实例186 泛型方法与数据查询 236 实例187 泛型化方法与...

    JAVA上百实例源码以及开源项目

    使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu  Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,...

    JAVA上百实例源码以及开源项目源代码

    使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu  Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,...

    java源码包---java 源码 大量 实例

    使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu  Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,...

    java源码包2

    使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu  Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到...

    java源码包3

    使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu  Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到...

    java源码包4

    使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu  Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...

    Java范例开发大全 (源程序)

     实例137 读取PDF文件中的内容 203  实例138 用iText生成Word文件 205  实例139 利用POI读取Word文件中的内容 208  7.3 字符流 209  实例140 按顺序创建文件 210  实例141 按顺序读取文件 211  实例142...

Global site tag (gtag.js) - Google Analytics