因为要做全文检索的项目,需要获取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_pdf.rar_iText pdf_itext PDF类”表明这是一个关于iText的压缩包,包含了与创建PDF相关的源代码和示例。 iText的核心功能包括但不限于以下几点: 1. **文本和图像处理**:你可以使用iText向PDF中...
在IT行业中,iText是一个广泛使用的Java和.NET库,用于创建、编辑和处理PDF文档。在最新的版本iText 7中,它提供了丰富的功能,包括将PDF文档转换为图像。这个话题涉及到PDF处理和图像转换两个核心领域。下面将详细...
iText 是一个强大的Java库,专门用于创建和修改PDF文档。在PDF文档中,目录(或书签)是用户友好的导航工具,可以帮助读者快速跳转到特定章节或页面。本篇文章将深入探讨如何使用iText来生成PDF的目录。 首先,理解...
java使用iText导出PDF文本绝对定位(实现方法) iText是一个流行的Java类库,用于生成PDF文档。下面我们将探讨如何使用iText在Java中导出PDF文本,并实现绝对定位。 iText简介 iText是一个开源的Java类库,用于...
IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...
itext7 html转换为pdf;iText7页码、页眉、页脚,itext 的复杂表格实现;完整springboot项目代码
本文将深入探讨如何使用iText7这个库在Java环境中生成带有页码和目录的PDF文件。 iText7是一款功能丰富的PDF处理库,它支持创建、编辑、解析和展示PDF文档。在Java中,我们可以利用iText7轻松地生成具有复杂结构的...
总的来说,"Itext删除PDF的图层"涉及到PDF的高级特性,需要对PDF标准和Itext库有深入理解。通过`OCGParser`和`OCGRemover`这两个类,我们可以有效地管理和定制PDF文档的内容,满足特定场景的需求。
- `itextpdf`:这个模块是Itext的主要接口,包含了生成PDF所需的主要API。你可以使用这些API创建新的PDF文档,或者对已有的PDF进行操作。 在实际使用中,你需要将这些Jar包添加到你的项目类路径中,然后就可以通过...
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的核心功能和应用。 iTextPDF,这个名字源自荷兰语“tekst”,意为“文本”,它由iText Software公司开发,是一个开放源代码的PDF库,主要支持Java和.NET平台。iTextPDF提供了一整套API,...
在C# WinForm应用中,Itext库是一个强大的工具,用于创建、编辑和管理PDF文档。这个简单的demo展示了如何利用Itext库将数据导出为PDF格式,非常适合初学者理解和实践。下面,我们将深入探讨这个知识点,以及如何一...
2. `io` - 提供了输入/输出操作,如读取和写入 PDF 文件。 3. `layout` - 包含布局元素,如段落、表格和列表,以及对它们的样式控制。 4. `forms` - 支持 PDF 表单的创建和处理。 5. `pdfa` - 用于创建符合 PDF/A ...
<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 ...
iText是一个开源的Java库,它提供了创建、读取、更新和签署PDF文档的功能。它支持多种复杂的PDF操作,如添加文本、图像、表格、超链接等,并且可以进行页面操作、书签管理、数字签名等。 2. **从数据库导出数据**...
iText5-itextpdf-5.5.11.jar是主要的库文件,包含了大部分的功能实现;iText5-xmlworker-5.5.11.jar则用于处理HTML到PDF的转换,使得你可以将网页内容轻松转换为PDF格式。 2. itext-asian5.20.jar:这个库是iText的...
通过分析这个文件,开发者可以更深入地理解iTextPDF的使用技巧和最佳实践。 总的来说,iTextPDF 5.5.13是开发人员生成PDF文档的得力助手,无论是在桌面应用还是移动平台,都能提供强大而灵活的功能。通过熟练掌握它...