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);
}
}
分享到:
相关推荐
itextpdf-5.5.10.jar、itext-asian-5.2.0.jar、iText中文帮助、iText英文帮助文档 以及生成PDF文件时生成表格时单元格合并处理方法
gradle项目,首次使用请先下载jar包(右键项目→Gradle→Refresh),不然报错!
生成PDF文件,引用到的JAR包是itext5.5.1 项目文件为PDFText.java 主要实现功能: 1、创建一个PDF文件:HelloWorld.pdf,给文档设置加密,密码为zhouyl或111 2、将PDF文件压缩成ZIP文件 3、生成一个PDF文件D:\\...
搜索了好多篇例子,算是强拼硬凑成现在的...此包中包含可测试成功代码,关联模板、字体文件、jar等 希望能帮助到大家。 这篇文章的作者蛮厉害,有不少借鉴。 http://blog.csdn.net/layman1024/article/details/74628658
Java用iText合并两个PDF文件,包含java代码及所用jar包。
实例137 读取PDF文件中的内容 203 实例138 用iText生成Word文件 205 实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142 追加文件内容 211 ...
实例182 简单的文件合并工具 231 8.2 泛型使用的简介 233 实例183 自定义非泛型栈结构 233 实例184 使用泛型实现栈结构 234 实例185 自定义泛型化数组类 235 实例186 泛型方法与数据查询 236 实例187 泛型化方法与...
使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,...
使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,...
使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,...
使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到...
使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到...
使用时候只需在控制台窗口执行jar就可以了。 Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...
Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...
实例137 读取PDF文件中的内容 203 实例138 用iText生成Word文件 205 实例139 利用POI读取Word文件中的内容 208 7.3 字符流 209 实例140 按顺序创建文件 210 实例141 按顺序读取文件 211 实例142...