用iText读取一个pdf文件,然后把它保存成另一个pdf文件(相当于复制一份),代码如下:
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;
public class pdfCopy
{
public static void main(String[] args)
{
String filepath = "C:\\a.pdf";
String savepath = "C:\\b.pdf";
copyLocalFiles(filepath, savepath);
}
public static void copyLocalFiles(String filepath, String savepath)
{
try
{
PdfReader reader = new PdfReader(filepath);
int n = reader.getNumberOfPages();
Document document = new Document(reader.getPageSize(1));
PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath));
document.open();
for(int i=1; i<=n; i++)
{
document.newPage();
PdfImportedPage page = copy.getImportedPage(reader, i);
copy.addPage(page);
}
document.close();
} catch (IOException e) {
e.printStackTrace();
} catch(DocumentException e) {
e.printStackTrace();
}
}
}
运行时出现了下面这样的错误:
Exception in thread "main" java.lang.IllegalArgumentException: PdfReader not opened with owner password
at com.lowagie.text.pdf.PdfReaderInstance.getImportedPage(Unknown Source)
at com.lowagie.text.pdf.PdfCopy.getImportedPage(Unknown Source)
上网查了一下,最后好不容易找到了原因,找到了解决办法。原来,我用的iText是itext-2.1.4.jar,使用以前的版本itext-2.0.2.jar,这时就不会出现这个错误了,就可以进行pdf文件的读取和保存了。
保存效果还是蛮好的,而且也支持中文。
分享到:
相关推荐
`PdfReader not opened with owner password` 这个错误通常出现在尝试打开受所有者密码保护的 PDF 文件时,如果缺少正确的密码,itextsharp 将无法读取或修改文件。 在使用 iTextSharp 处理 PDF 文件时,有以下几个...
PdfReader reader = new PdfReader(filePath); int n = reader.getNumberOfPages(); StringBuilder contentBuilder = new StringBuilder(); for (int i = 0; i ; i++) { contentBuilder.append...
《iText库与JasperReports...可能会遇到一个问题:“The POM for com.lowagie:itext:jar:2.1.7.js7 is missing, no dependency information available.” 这个错误提示意味着在Maven的项目对象模型(POM)文件中找不到...
关于PDF文件制作及操作的经典书籍,适用于java C#等多种语言,可以添加图片,水印,各种字体,报表,教你如何一步一步的成为PDF编程高手,真正的step by step,深入浅出,五步即可制作自己的PDF文件。
Error POM for com.lowagie:itext:jar:2.1.7.js7 This is the bit that causes issues: <groupId>com.lowagie</groupId> <artifactId>itext <version>2.1.7.js7 <scope>compile <optional>false <groupId>org....
iTextPDF是一款强大的Java库,专门用于创建和编辑PDF文档。这个库的多个版本在不同的项目中被广泛使用,以满足特定的需求和兼容性要求。本文将深入探讨iTextPDF的不同版本及其在Web项目中生成PDF文档的应用。 首先...
《Java使用iTextPDF库创建和操作PDF文档详解》 在Java开发中,有时我们需要将数据转换为PDF格式,以便于打印、分享或长期存储。这时,iTextPDF库成为了一个强大的工具。本文将深入探讨如何使用iTextPDF 5.4.3版本的...
适用于android,编译提示有问题的话,在app的Build.gradle的android下加如下代码: packagingOptions { exclude 'com/itextpdf/text/pdf/fonts/cmap_info.txt' }
PdfReader reader = new PdfReader(fis); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("目标文件路径")); ``` 3. **定义水印内容和样式**:创建一个`ColumnText`对象,设置字体、大小、颜色...
在实际操作中,首先,开发者需要在项目中引入iText 2.1.7.js8的依赖,这通常通过Maven或Gradle等构建工具完成。然后,使用JasperReport的JasperFillManager填充报表,接着使用JasperExportManager将填充好的报表导出...
iText 7 基础包kernel-7.0.4.jar。。。。。。。。。。
在实际开发中,`iText操作Pdf简单整理.txt`可能包含了关于如何使用这些功能的示例代码和说明,通过学习和实践,开发者能够熟练掌握iText,满足各种PDF文档处理需求。 总的来说,iText是一款功能丰富的PDF处理工具,...
2. **iText7核心概念**:iText7的核心组件包括PdfDocument、PdfWriter、PdfReader和PdfCanvas。PdfDocument代表PDF文档,PdfWriter用于创建新文档或追加到现有文档,PdfReader用于读取现有文档,PdfCanvas则用于在...
在使用最新版jasperreports的时候,比如6.8.0版本时,itext-2.1.7.js6.jar无法根据maven来下载,需要使用此jar包导入本地仓库。
JasperReports依赖itext-2.1.7.js8.jar,目前maven仓库下载不了,估计后面也下载不了
在Java开发中,处理PDF文档是一项常见的任务,iTextPDF是一个广泛使用的开源库,它提供了丰富的API来创建、修改和操作PDF文档。在处理中文字符时,我们需要引入特定的依赖包,以确保中文文字能够正确显示。本文将...
本文将详细介绍如何利用iText库在Java中实现Word文档的生成,包括添加段落、插入图片和设置页码等操作。 首先,我们需要引入iText库。在本例中,我们有两个jar文件:`itext-2.1.7.jar`和`itext-rtf-2.1.7.jar`。`...
- **读取模板**:使用`PdfReader`类读取PDF模板文件,创建`PdfStamper`对象,它允许在模板上进行写入操作。 - **写入数据**:利用`AcroFields`接口,可以填充表单字段或者直接在页面上添加文本、图像。例如,`...
`iText`是一个强大的Java库,专门用于创建、编辑和处理PDF文档。本教程将详细介绍如何使用`iText`将图片转换为高清PDF,并提供一个无坑版的demo示例。 首先,我们需要理解`iText`库的核心概念。`iText`提供了丰富的...
2. **读取PDF**:使用ITEXT,你可以通过`PdfReader`类打开并读取PDF文档。`PdfReader`对象提供了访问PDF页面的方法。 ```java PdfReader reader = new PdfReader("path_to_your_pdf"); ``` 3. **获取PDF页面**:...