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);
}
}
分享到:
相关推荐
2. **修改PDF**:对已存在的PDF文档进行编辑,如添加或删除页面,更新文本和图像,甚至合并多个PDF文件。 3. **阅读和解析PDF**:读取PDF文档中的内容,提取文本、图片或元数据,这对于信息检索或数据分析非常有用...
3. **文档自动化**:在文档管理系统中,itext.jar 可以用于自动转换和合并不同格式的文件,统一为PDF格式。 4. **学术出版**:科研机构和出版社可以利用itext.jar 创建高质量的PDF论文和书籍,支持复杂的排版和引用...
这个库允许开发者创建、修改、分割和合并PDF文档,以及添加数字签名、表单字段等高级功能。在这个压缩包中,我们有两个版本的iText库:iText-5.0.6.jar和iTextAsian.jar。 首先,我们来详细探讨iText-5.0.6.jar。这...
9. **PDF优化**:iText还提供了优化PDF的功能,如减少文件大小、合并多个PDF、删除无用对象等。 10. **流式处理**:iText允许开发者在内存中处理PDF,或者直接将PDF写入输出流,适用于网络传输或响应HTTP请求。 ...
6. **PDF合并与拆分**:可以将多个PDF文件合并为一个,或者从PDF文档中提取特定页面。 7. **PDF/A兼容**:支持创建符合PDF/A标准的文档,用于长期归档和合规性要求。 在使用iText时,开发者需要将对应的jar包(如`...
它提供了丰富的API,使得开发者能够创建、编辑、读取和修改PDF文件。iText-2.1.7.jar是这个库的核心版本,它包含了处理PDF文档的基本功能。这个版本在当时发布时是一个广泛使用的稳定版本,适合那些对PDF操作有需求...
- `io`:Itext的输入输出模块提供了读取和写入PDF文件的工具,可以用于合并、分割、加密或解密PDF文档。 6. **项目管理和父级POM**: - `itext-parent` 和 `root`:这些通常是Maven项目管理文件,包含了项目的...
3. **合并与分割PDF**:将多个PDF文件合并成一个,或从一个PDF中提取部分页面。 4. **表单处理**:填充PDF表单字段,或者创建交互式PDF表单。 5. **加密与解密PDF**:对PDF文档进行安全性设置,保护文档内容不被非法...
这个库使得开发人员能够方便地创建、修改和操作PDF文件。在你提供的信息中,我们关注到三个特定的JAR文件:`iText-2.0.8.jar`、`iTextAsian.jar`和`iTextAsianCmaps.jar`。 `iText-2.0.8.jar`是iText库的主版本,...
8. **PDF合并与分割**:IText还支持将多个PDF文件合并成一个,或者将一个PDF文件拆分成多个部分。 9. **更新和签名PDF**:你可以更新现有PDF的内容,甚至为其添加数字签名,以确保文件的完整性和未被篡改。 10. **...
使用时,你需要将jar文件添加到你的项目类路径中,然后通过Java代码调用iText7的API来实现PDF文档的操作。 为了更好地利用iText7,开发者应熟悉其API文档,了解各种类和方法的用法。此外,官方提供的示例代码和教程...
3. PDF文档合并:将多个PDF文件合并成一个文档,方便管理和阅读。 4. PDF表单处理:创建交互式PDF表单,用户可以填写并保存数据,也可以读取已填好的表单数据。 5. PDF水印和页眉页脚:在PDF上添加自定义水印或页眉...
此外,iText 还允许对现有 PDF 进行操作,如添加水印、签名、注释或者合并多个 PDF。 在实际应用中,iText 2.0.8 可用于多种场景,例如: 1. **报表生成**:开发人员可以利用 iText 动态生成包含复杂数据的 PDF ...
这个压缩包包含了两个主要的JAR文件:`itext-asian-5.2.0.jar`和`itextpdf-5.5.13.1.jar`,它们在处理PDF文件时扮演着重要的角色。 `itext-asian-5.2.0.jar`是iText的一个扩展,主要是为了支持亚洲语言,如中文、...
它提供了丰富的功能,允许开发者创建、修改、分割和合并PDF文件。iText-2.1.5.jar是iText的一个早期版本,发布于2009年,包含了基本的PDF处理功能。这个版本支持PDF 1.7规范,提供了一系列API,使得开发者可以方便地...
在标题和描述中提到的三个JAR文件,iText-2.1.5.jar、iTextAsian.jar 和 iText-rtf-2.1.4.jar,分别代表了iText库的不同组件和扩展。 1. **iText-2.1.5.jar**:这是iText的核心库,主要用于PDF的生成、编辑和解析。...
总的来说,"iText5.4.2需要的全部的jar包"意味着你将得到一个完整且汉化的iText版本,可以满足你在处理亚洲语言PDF时的所有需求。无论你是要创建新的PDF文档,还是需要编辑已有文档,这个库都能提供强大的工具和便捷...
《使用iText 2.1.7.jar进行Java图片转PDF操作详解》 在Java开发中,有时我们需要将多张图片合并成一个PDF文档,这时就需要依赖特定的库来完成这个任务。iText是一个强大的开源Java库,专门用于创建、修改PDF文档。...
除了生成PDF,iTextPDF也能解析和操作已存在的PDF文件。可以读取PDF文档的信息、提取文本和图像,或者合并多个PDF文档为一个。这对于文档管理和处理流程自动化来说,是非常实用的。 总结,iTextPDF 5.5.5是一个全面...
iTextPDF提供了广泛的API,允许开发者创建、修改、解析和合并PDF文档。它支持文本、图像、表格、超链接、书签、表单字段等元素的插入和操作。此外,还支持PDF/A兼容性,用于长期归档和电子文档的法律合规性。版本...