因为要做全文检索的项目,需要获取pdf文件的指定标题和标题对应的页码,上网查了相关资料,决定用iText开发包,废话不多说直接上代码。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.SimpleBookmark;
public class TestPdf {
public static void main ( String [] args ) throws Exception {
PdfReader reader = new PdfReader ( "e:/test.pdf" ) ;
List<HashMap<String, Object>> list = SimpleBookmark.getBookmark ( reader ) ;
for ( Iterator<HashMap<String, Object>> i = list.iterator () ; i.hasNext () ; ) {
showBookmark ( i.next ()) ;
}
for ( Iterator<HashMap<String, Object>> i = list.iterator () ; i.hasNext () ; ) {
getPageNumbers( i.next ());
}
}
//获取标题
private static void showBookmark ( HashMap<String, Object> bookmark) {
System.out.println (bookmark.get ( "Title" )) ;
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> kids = (ArrayList<HashMap<String, Object>>) bookmark.get ( "Kids" ) ;
if ( kids == null )
return ;
for ( Iterator<HashMap<String, Object>> i = kids.iterator () ; i.hasNext () ; ) {
showBookmark ( i.next ()) ;
}
}
//获取页码
public static void getPageNumbers(HashMap<String, Object> bookmark) {
if (bookmark == null)
return;
if ("GoTo".equals(bookmark.get("Action"))) {
String page = (String)bookmark.get("Page");
if (page != null) {
page = page.trim();
int idx = page.indexOf(' ');
int pageNum;
if (idx < 0){
pageNum = Integer.parseInt(page);
System.out.println ("pageNum :"+ pageNum) ;
}
else{
pageNum = Integer.parseInt(page.substring(0, idx));
System.out.println ("pageNum:" +pageNum) ;
}
}
@SuppressWarnings("unchecked")
ArrayList<HashMap<String, Object>> kids = (ArrayList<HashMap<String, Object>>) bookmark.get ( "Kids" ) ;
if ( kids == null )
return ;
for ( Iterator<HashMap<String, Object>> i = kids.iterator () ; i.hasNext () ; ) {
getPageNumbers ( i.next ()) ;
}
}
}
}
分享到:
相关推荐
在Android平台上,生成和读取PDF文件是一项常见的需求,特别是在数据导出、报告生成或文档共享等场景。iText是一个强大的开源库,它允许开发者在Java和.NET环境中创建、编辑和处理PDF文档。在这个场景中,我们将探讨...
iText 是一个强大的Java库,专门用于创建和修改PDF文档。在PDF文档中,目录(或书签)是用户友好的导航工具,可以帮助读者快速跳转到特定章节或页面。本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解...
在IT行业中,iText是一个广泛使用的Java和.NET库,用于创建、编辑和处理PDF文档。在最新的版本iText 7中,它提供了丰富的功能,包括将PDF文档转换为图像。这个话题涉及到PDF处理和图像转换两个核心领域。下面将详细...
IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...
标题中的“iText_pdf.rar_iText pdf_itext PDF类”表明这是一个关于iText的压缩包,包含了与创建PDF相关的源代码和示例。 iText的核心功能包括但不限于以下几点: 1. **文本和图像处理**:你可以使用iText向PDF中...
itext7 html转换为pdf;iText7页码、页眉、页脚,itext 的复杂表格实现;完整springboot项目代码
iTextPDF是一个Java库,专门用于创建、编辑和处理PDF文档,而`iText-asian-5.2.0.jar`和`itextpdf-5.5.5.jar`是iText库的不同版本,用于支持中文字符和其他亚洲语言。 1. **iTextPDF**: iTextPDF是iText项目的一...
java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF文本,并实现绝对定位。 iText简介 iText是一个开源的Java类库,用于...
本文将深入探讨如何使用iText7这个库在Java环境中生成带有页码和目录的PDF文件。 iText7是一款功能丰富的PDF处理库,它支持创建、编辑、解析和展示PDF文档。在Java中,我们可以利用iText7轻松地生成具有复杂结构的...
2. **读取PDF**:使用ITEXT,你可以通过`PdfReader`类打开并读取PDF文档。`PdfReader`对象提供了访问PDF页面的方法。 ```java PdfReader reader = new PdfReader("path_to_your_pdf"); ``` 3. **获取PDF页面**:...
总的来说,"Itext删除PDF的图层"涉及到PDF的高级特性,需要对PDF标准和Itext库有深入理解。通过`OCGParser`和`OCGRemover`这两个类,我们可以有效地管理和定制PDF文档的内容,满足特定场景的需求。
iText是一款强大的开源Java库,用于处理PDF文档,包括创建、编辑、读取和打印PDF文件。本篇文章将深入探讨如何使用iText库进行PDF打印。 首先,我们需要了解iText的基本概念。iText提供了PDFDocument、PDFPage、PDF...
在使用iText时,首先需要引入相应的库文件,如压缩包中的`itextpdf-5.5.1.jar`,这是iText的主要库,包含了处理PDF文档的核心功能。如果需要处理中文字符或者亚洲语言,还需要引入`itext-asian-5.1.0.jar.zip`解压后...
- `itextpdf`:这个模块是Itext的主要接口,包含了生成PDF所需的主要API。你可以使用这些API创建新的PDF文档,或者对已有的PDF进行操作。 在实际使用中,你需要将这些Jar包添加到你的项目类路径中,然后就可以通过...
本文将深入探讨iTextPDF的核心功能和应用。 iTextPDF,这个名字源自荷兰语“tekst”,意为“文本”,它由iText Software公司开发,是一个开放源代码的PDF库,主要支持Java和.NET平台。iTextPDF提供了一整套API,...
在C# WinForm应用中,Itext库是一个强大的工具,用于创建、编辑和管理PDF文档。这个简单的demo展示了如何利用Itext库将数据导出为PDF格式,非常适合初学者理解和实践。下面,我们将深入探讨这个知识点,以及如何一...
iText是一个开源的Java库,它提供了创建、读取、更新和签署PDF文档的功能。它支持多种复杂的PDF操作,如添加文本、图像、表格、超链接等,并且可以进行页面操作、书签管理、数字签名等。 2. **从数据库导出数据**...
<artifactId>itextpdf <version>5.5.13 ``` 接下来,我们需要一个HTML页面作为PDF的源内容。你可以使用任何你喜欢的方式(如Thymeleaf或Freemarker)来创建HTML,然后使用iText的HTML-to-PDF转换功能将其转换为...
<artifactId>itextpdf <version>5.5.13 ``` 接下来,我们将探讨如何生成PDF文件。以下是一个简单的例子,展示如何创建一个包含简单文本的PDF文档: ```java import com.itextpdf.text.Document; import ...
3. **表单处理**:iTextPDF可以处理PDF表单,允许填充、读取和创建交互式表单。这在处理如调查问卷、申请表等场合非常有用。 4. **数字签名和安全性**:iTextPDF提供了数字签名的功能,可以确保PDF文档的完整性和...