Itext简绍及操作PDF文件

iText简介

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了。

iTextAsian.jar (亚洲语言包,可以使用中文) 需要添加到工程中 使用时需要在系统的环境变量Path中加入iText的路劲,在程序中就可以使用了 用iText生成PDF文档需要5个步骤:

1)建立com.lowagie.text.Doucment对象的实例 Document document = new Document();

2)建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入磁盘中PDFWriter.getInstance(document,new FileOutputStream(“要存放的文件路径名”));

3)打开文档document.open();

4)向文档中添加内容

所有向文档添加的内容都是以对象为单位     如:Phrase(短语)、Paragraph(段落)、Chunk(文本块)、Table、Graphic

比较常用的为Paragraph对象,用于向文档中添加一段文字。Chunk(文本块)是处理文本的最小单位,由一串带格式(包括字体、颜色、大小) 的字符串组成。     Phrase(短语)由一个或多个Chunk(文本块)组成,Phrase(短语)也可以设定字体, 但对于其中以设定过字体的Chunk(文本块)无效。通过Phrase(短语)成员函数 Add可以将一个Chunk(文本块)加入到Phrase(短语)中。

如:phrase.add(chunk);     Paragraph(段落)由一个或多个Chunk(文本块)或Phrase(短语)组成,相当于Word文档中的段落概念,同样可以设定段落的字体大小、颜色等属性。

另外也可以设定段落的首行缩进、对齐方式(左对齐、右对齐、居中对齐)。通过函数SetAlignment()可以设定段落的对齐方式

如:Paragraph.setAlignment(int age);     参数有1(居中对齐)、2(右对齐)、3(左对齐);不设置默认左对齐。

Chunk chunk1 = new Chunk("ceshi1");

Chunk chunk2 = new Chunk("ceshi2");

Phrase phrase = new Phrase();

Phrase.add(chunk1);

Phrase.add(chunk2);

Paragraph paragraph1 = new Paragraph("ceshizhi");

第一种,直接传值进去

Paragraph paragraph2 = new Paragraph (chunk2);

paragraph2.setAlignment(1); 居中对齐

第二种,传一个文本块对象进去

Paragraph paragraph2 = new Paragraph (phrase);

第三种,传一个短语对象进去

Document.add(paragraph1);

Document.add(paragraph2);

Document.add(paragraph3); 把段落写入文档中

5) 关闭文档

Document.close();

其他: 换页 Document.newPage();

中文处理 当有中文的时候使用上面的方法则中文不会被写入,

因此需要用到:

BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);

Font fontChinese = new Font(bfChinese, 12, Font.NORMAL,Color.GREEN);

然后打开文档写入的时候,就应该按照下面的写法:

Paragraph paragraph1 = new Paragraph("测试", fontChinese);

同上面一样"测试"可以用文本块或短语替换;

图片处理 iText中处理图像的类为com.lowagie.text.Image 目前iText支持的图像格式有:、GIF、JPG、PNG等格式 iText用同样的构造函数自动识别图像格式: //参数为gif、jpg、png格式的图片都可以

Image image = Image.getInstance("参数"); //定义一个图片信息,可以是绝对路径,也可以是

URL Image img = Image.getInstance("D:\\4.jpg");

img = Image.getInstance(new URL(http://xxx.com/logo.jpg)); //添加到document中 document.add(img);

图像的位置 图像的位置主要是指图像在文档中的对齐方式、图像和文本的位置关系。

IText中通过函数public void setAlignment(int alignment)进行处理, 参数alignment为Image.RIGHT、Image.MIDDLE、Image.LEFT分别指右对齐、居中、左对齐;

当参数alignment为Image.TEXTWRAP、Image.UNDERLYING分别 指文字绕图形显示、图形作为文字的背景显示。

这两种参数可以结合以达到预期的效果, 如

setAlignment(Image.RIGHT|Image.TEXTWRAP) 显示的效果为图像右对齐,文字围绕图像显示。 图像的尺寸和旋转 //设置图像的宽和高

image.scaleAbsolute(int newWidth, int newHeight); //设置图像比例,表示显示的大小为原始大小的多少比例

image.scalePercent(int percent); //设置图像的高宽比例

image.scalePercent(int percentX,int percentY); //设置图像旋转一定的角度;

参数arg为弧度,而不是角度 image.setRotation(float arg);

时间: 2024-08-04 18:44:55

Itext简绍及操作PDF文件的相关文章

itext操作pdf文件

itext操作pdf模板: 1.首先使用excel制作好模板文件,将模板文件转换为pdf格式文件. 2.使用Adobe Acrobat XI Pro工具打开pdf文件,在需要的位置添加文本域.(工具-->表单-->编辑) 3.对每个文本域设置文本域属性,为其命名.如title.desion_no等. 4.通过itext方式操作文本域,为期赋值,并重新生成pdf文件. 1 package com.pcm.app.transfer; 2 3 import java.io.ByteArrayOutp

怎样编辑操作PDF文件

一般情况下PDF文件都是用来浏览查看的,对PDF文件编辑的比较少,很多格式的文档也只会在编辑完成之后才会保存为PDF格式.因此很多人对PDF文件的编辑不是很了解,甚至不知道PDF阅读器是不能编辑PDF文件的,当遇到PDF文件需要编辑修改时那该怎样来应对呢? PDF文件是和其他类型格式的文档不同的,而且PDF在打开浏览查看和编辑都是由不同的工具来分别实现,因此需要编辑PDF的内容必须要用专门的PDF编辑工具来打开文档进行操作. 打开PDF文件后可以在左边的缩略图里面切换需要编辑的页面,在缩略图中可

怎么操作PDF文件交换页面?简单的操作方法

PDF文件怎么交换页面呢?在现在使用PDF文件的时候,我们也会遇到一些PDF交换页面这种问题,不会操作PDF交换页面怎么办呢?下面小编就为大家介绍一下PDF文档交换页面的操作方法. 操作软件:迅捷PDF编辑器(PDF编辑器下载) 1:我们将PDF编辑器安装到自己的电脑中,打开软件可以找到打开更多文件,将需要编辑的PDF文件添加到软件中. 2:在软件中可以找到文档,点击文档就可以找到更多页面,将鼠标移动到更多页面处,在右侧就会看到交换页面. 3:点击交换页面就会出现一个弹窗,在弹窗中可以看到Swa

用python操作PDF文件

本次学习的内容主要是:从PDF读取文本内容和从已经有的文档生成新的PDF. 需要用到的模块是PyPDF2. 首先要在命令行中运行pip install PyPDF2. 一.从PDF读取文本 PyPDF2无法从pdf文档中提取图像,图表和其他媒体,但是它可以提取文本,并且将文本返回为python字符串.import PyPDF2# ===============从pdf中提取文本===========pdffile = open(r'E:\python让繁琐的工作自动化\13_处理pdf和word

itext操作PDF文件添加水印

功能描述:添加图片和文字水印 1 /** 2 * 3 * [功能描述:添加图片和文字水印] [功能详细描述:功能详细描述] 4 * @param srcFile 待加水印文件 5 * @param destFile 加水印后存放地址 6 * @param text 加水印的文本内容 7 * @param textWidth 文字横坐标 8 * @param textHeight 文字纵坐标 9 * @throws Exception 10 */ 11 public void addWaterMa

java使用pdfbox操作pdf文件

import java.io.FileInputStream; import org.apache.pdfbox.cos.COSDocument; import org.apache.pdfbox.pdfparser.PDFParser; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.util.PDFTextStripper; public class Read {  public String rea

vue项目中操作PDF文件

官方文档参考:https://www.npmjs.com/package/vue-pdf 1. cnpm install --save vue-pdf 2.components.vue <template> <pdf src="./static/relativity.pdf"></pdf> </template> <script> import pdf from 'vue-pdf' export default { compo

强大的pdf文件操作小工具——PDFtk的小白用法

前言 作为程序员,大家都知道的,总是会被技术小白问各种跟编程没什么关系的硬件.软件问题.曾经被一技术小白同事问到有没有什么办法合并pdf文件,当时自己也是一头雾水,因为自己工作生活很少会去操作pdf文件,而当时公司对开发人员的电脑权限管理很严格,不论是上网还是安装软件,都受到很大限制,最后硬着头皮忙活了一阵子也没在解决. 前两天在写批处理程序的时候,发现批处理程序是有合并文件的命令的,我忽然想起之前这个同事的问题,就试了一下合并pdf,然而并不行.虽然失落了一下,但本着学习的精神还是百度了一下关

C#使用iTextSharp封装的PDF文件操作类实例

本文实例讲述了C#使用iTextSharp封装的PDF文件操作类.分享给大家供大家参考.具体分析如下: 这个C#代码主要讲iTextSharp中用于操作PDF文件的方法进行了再次封装,可以更加方便的访问PDF文档,可以动态生成PDF文件.添加内容.设置段落.设置字体等. using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; namespace DotNet.Utilities { /// <summary> ///