`
cjc
  • 浏览: 680798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用iText操作pdf文件

阅读更多

使用iText操作pdf文件

前段时间写过一篇文章《java读取pdf文件的内容》,pig0045给我回复,说可以直接利用iText搞定,我很感激,因为以前处理pdf文件并不多,对这块相关组件并不了解,pig0045给我介绍了一个新的方法,谢谢!欣喜之余,马上google了一把iText,发现iText在生成pdf文件方面功能很强大,而在读取pdf文件内容方面似乎涉及并不多(也许是我没查到,有不同观点的朋友,大家探讨一下阿)。
同时我也查了下java领域针对pdf的相关组件,发现有很多开源的东东,都可以操作pdf,恩,很不错的。大致介绍几个:xpdf,iText,PDFBox,感兴趣的话,大家可以自己查一下。
好了,回到文章主题,查了下iText后,我也去稍微看了下相关的api,做了一些简单的demo,虽然网上相关介绍很多,但是自己写一遍程序再用自己的语言记录下来,理解会更为深刻一点。
准备工作:到http://www.lowagie.com/iText/下载最新的iText的jar包,并将其放到classpath中。
一.Hello World
iText创建pdf文件是十分简单的,为了演示其极其简单性,我们做一个HelloWorld吧,让大家体验一下。
在这个pdf文件中,我们只显示一句话"Hello World",实现方式如下:
//创建一个文档对象
Documentdoc=newDocument();
try...{
//定义输出位置并把文档对象装入输出对象中
PdfWriter.getInstance(doc,newFileOutputStream("/root/hello.pdf"));
//打开文档对象
doc.open();
//加入文字“HelloWorld”
doc.add(newParagraph("HelloWorld"));
//关闭文档对象,释放资源
doc.close();
}
catch(FileNotFoundExceptione)...{
e.printStackTrace();
}
catch(DocumentExceptione)...{
e.printStackTrace();
}
怎么样?很简单吧?下面我们对以上代码稍作解释。
Document(文档)是创建pdf需要使用的第一个类,一旦创建了文档,要向pdf文件里写入内容,则需要一个写入器,而PdfWriter就是这样的一个写入器。Paragraph这个类表示一个缩进的段落。运行以上程序,我们就会在/root目录下看到hello.pdf文件。

但是在实际工作中,我们不可能做这么简单的工作,下面就介绍一下常用的操作。
二.设置页边距
如果我们希望定义页面大小和页边距,可以通过使用Document的构造方法实现:
publicDocument();

publicDocument(RectanglepageSize);

publicDocument(RectanglepageSize,
intmarginLeft,
intmarginRight,
intmarginTop,
intmarginBottom);
如下:
RectanglepSize=newRectangle(144,90);
//文档的背景色
pSize.setBackgroundColor(Color.blue);
//创建一个文档对象,设置初始化大小和页边距
Documentdoc=newDocument(pSize,5,5,5,5);
在上面的例子中我们通过Rectangle设置了文档的大小,其实iText已经为我们定义好了许多常用的页面,比如:A0-A10,我们可以直接调用,如下:
Documentdoc=newDocument(PageSize.A4,5,5,5,5);

三.设置字体
iText可以设置显示文本的字体,大小,颜色等,如下:
//加入文字“HelloWorld”,并设置字体为粗体,大小为20,颜色为红色
doc.add(newParagraph("HelloWorld",FontFactory.getFont(
FontFactory.COURIER,
20,Font.BOLD,newColor(255,0,0))));
而要实现中文支持,我们需要到http://itextdocs.lowagie.com/downloads/iTextAsian.jar下载中文支持包,然后把它放入classpath中(我试了几次,都无法下载,这里先不说这块了)。
四.编辑表格
pdf中的table和html中的table差不多,只是其单元格是cell,如下代码加入了一个2*2的表格,代码很简单,就不过多解释了。
Documentdoc=newDocument();
try...{
//定义输出位置并把文档对象装入输出对象中
PdfWriter.getInstance(doc,newFileOutputStream("/root/hello.pdf"));
//打开文档对象
doc.open();
Tablet
=newTable(2,2);
t.setBorderColor(
newColor(0,0,255));//设置边框颜色为蓝色
t.setPadding(5);
t.setSpacing(
5);//设置单元格边界
t.setBorderWidth(1);//设置边框宽度
Cellc1=newCell("header1");
c1.setHeader(
true);
t.addCell(c1);
c1
=newCell("Header2");
t.addCell(c1);
t.endHeaders();
t.addCell(
"1.1");
t.addCell(
"1.2");
doc.add(t);
//关闭文档对象,释放资源
doc.close();
}
catch(FileNotFoundExceptione)...{
e.printStackTrace();
}
catch(DocumentExceptione)...{
e.printStackTrace();
}

五.插入图片
插入图片和swing插入图片差不多,大家可以参考一下:
Documentdoc=newDocument();
Imagejpeg;
try...{
PdfWriter.getInstance(doc,
newFileOutputStream("/root/hello.pdf"));
doc.open();
jpeg
=Image.getInstance("/root/1.gif");
//图片居中
jpeg.setAlignment(Image.ALIGN_CENTER);
doc.add(jpeg);
doc.close();
}
catch(BadElementExceptione)...{
e.printStackTrace();
}
catch(MalformedURLExceptione)...{
e.printStackTrace();
}
catch(IOExceptione)...{
e.printStackTrace();
}
catch(DocumentExceptione)...{
e.printStackTrace();
}


好了,到这里我大致也介绍完了,欢迎大家拍砖,呵呵
分享到:
评论
1 楼 kamasx 2009-12-11  
不是读取吗?怎么是创建pdf???怎么用iText把pdf读出来???

相关推荐

    java使用itext实现pdf文件下载

    本教程将详细讲解如何使用Itext库实现PDF文件的下载,包括通过系统路径下载和通过浏览器下载两种方式。 首先,我们需要了解Itext的基本用法。Itext提供了一系列的API,可以方便地创建PDF文档的各个元素,如文本、...

    iText操作Pdf简单整理

    在实际开发中,`iText操作Pdf简单整理.txt`可能包含了关于如何使用这些功能的示例代码和说明,通过学习和实践,开发者能够熟练掌握iText,满足各种PDF文档处理需求。 总的来说,iText是一款功能丰富的PDF处理工具,...

    使用itextpdf将PDF大文件拆分成若干份指定大小文件.zip

    2. **读取PDF**: 使用`PdfReader`类打开原始PDF文件,获取其`PdfStamper`实例,这将允许你访问并操作PDF的内部结构。 3. **计算页面大小**: 每个PDF页面可能包含不同的元素,如文本、图像和图形,这导致每页的大小...

    使用itext生成PDF文件

    本篇文章将详细介绍如何使用iText库生成PDF文件,以及在这个过程中可能遇到的关键知识点。 首先,我们需要了解iText的基本概念。iText是一个开源库,它提供了一系列API,使开发者能够方便地处理PDF文档。通过这个库...

    springboot使用itext生成pdf并保存到本地

    本教程将探讨如何利用iText库在Spring Boot应用中从HTML页面生成PDF,并进行一系列的定制化操作,如添加页眉、页码、水印、目录以及二维码。 首先,iText是一个强大的Java库,专门用于创建和编辑PDF文档。它提供了...

    使用IText生成PDF和WORD文档

    这将生成一个名为"output.pdf"的PDF文件,其中包含指定的文本。 接下来,我们转向Word文档的生成。虽然IText的主要功能是处理PDF,但它也可以通过使用Apache POI库或iTextAspose库生成Word(.doc或.docx)文件。...

    使用itextpdf将excel转化为pdf + pdf加水印

    TestForExcel2PDF测试类可能包含这样的逻辑:首先,加载Excel文件,然后使用itextpdf的API将工作表的内容转换为PDF页面,最后保存为PDF文件。这个过程中可能涉及到对Excel表格的样式、字体、颜色等元素的保持,以...

    java使用itextpdf、itext-asian对pdf文件加水印

    2. **创建PDF文档读写对象**:使用`PdfReader`读取源PDF文件,然后用`PdfStamper`创建一个可写对象,允许我们向PDF中添加新的内容。 ```java FileInputStream fis = new FileInputStream("源文件路径"); PdfReader ...

    利用itext操作pdf从数据库导出大量数据

    本篇文章将详细介绍如何利用iText库操作PDF,从数据库中导出大量数据。 首先,我们需要理解iText的基本概念和功能。iText提供了丰富的API,可以用于创建新的PDF文档、添加文本、图像、表格、链接等元素,以及对已有...

    java使用itext解析pdf并生成文本文件—eclipse工程

    2. **创建PdfReader对象**:使用`PdfReader`类来打开和读取PDF文件。你需要提供PDF文件的路径作为构造函数的参数: ```java PdfReader reader = new PdfReader("path_to_your_pdf.pdf"); ``` 3. **遍历PDF页**:PDF...

    使用itext操作pdf

    本文将深入探讨如何使用iText库来操作PDF文件,这是一个功能强大的Java库,允许开发者创建、修改和处理PDF文档。通过学习iText,我们可以实现诸如添加文本、图像、表格、链接等许多功能。 首先,我们需要了解如何...

    IText解析PDF文件

    iText是一个开源的Java库,用于生成、修改和操作PDF文件。它提供了一套丰富的API,允许开发者轻松地集成到现有的应用程序中。无论是从头创建PDF文档,还是编辑现有的PDF文件,iText都提供了强大的支持。 #### 二、...

    iText PDF中文字体文件.rar

    iText是一个强大的PDF库,它允许开发者在程序中创建、修改和操作PDF文档。然而,对于处理中文字符,iText需要额外的字体文件支持,因为默认的字体库不包含中文字符集。本教程将深入探讨如何在Java中使用iText PDF...

    itext7 pdf转图片

    - PDF文档的结构:PDF由多个对象组成,如页、字体、图像、注释等,这些对象在PDF文件中以XML式的语法存储。 - 转换PDF:除了基本的创建和编辑功能,iText 7还允许开发者将PDF文档转换为其他格式,例如HTML、XML或...

    freemarker+itext生成PDF

    在Java世界中,Itext 是一个广泛使用的库,它允许开发者创建、修改和操作PDF文档。这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的...

    iText_pdf.rar_iText pdf_itext PDF类

    在描述中提到的“iText可以制作中文PDF文件的JAVA源程序”,意味着这个压缩包可能包含示例代码或教程,展示了如何使用iText库在Java程序中创建包含中文字符的PDF文档。通常,处理中文字符需要正确配置字体资源,并...

    java通过itext操作pdf模板写入pdf合同数据

    Java通过iText库操作PDF模板来写入PDF合同数据是一项常见的技术任务,尤其在文档自动化处理和企业级应用中。iText是一个强大的PDF处理库,它允许开发者创建、修改和处理PDF文档。在这个过程中,首先我们需要一个PDF...

    使用itext生成pdf需要的jar包

    本篇将详细介绍如何使用iText生成PDF,以及所需的jar包。 首先,我们需要理解iText库的核心功能。iText允许开发者通过编程方式创建PDF文档,支持添加文本、图像、表格、链接、样式和布局等多种元素。它还提供了高级...

    itext打印pdf文件拆分list数据

    本话题将深入探讨如何使用iText库来打印PDF文件并拆分包含在List数据中的信息。 首先,我们要理解iText的工作原理。iText提供了一系列API,允许开发者创建PDF文档,添加文本、图像、表格等元素,以及进行更复杂的...

    itextpdf-5.5.13

    《iTextPDF 5.5.13:创建PDF文件的高效工具》 iTextPDF是一款功能强大的Java库,主要用于创建、编辑以及处理PDF文档。版本5.5.13是其历史版本之一,提供了丰富的API和功能,使得开发者能够方便地在Android平台上...

Global site tag (gtag.js) - Google Analytics