龙空技术网

iText PDF Java API 入门介绍教程

CJavaPy编程之路 173

前言:

现在小伙伴们对“itext api文档”可能比较注重,各位老铁们都想要知道一些“itext api文档”的相关资讯。那么小编在网摘上网罗了一些关于“itext api文档””的相关内容,希望看官们能喜欢,我们快快来了解一下吧!

iText是一个非常强大的Java库,用于创建和操作PDF文档。可以在Java应用程序中生成PDF文档,包括文本、表格、图像等丰富的内容。iText具有强大的功能,如PDF/A、数字签名、加密等,适用于复杂的PDF处理需求。iText是一个非常灵活和强大的库,可以根据具体需求进行大量的定制和扩展。

参考文档:

1、添加iText依赖

要开始使用iText,需要将其添加到项目中。如使用的是Maven,可以在pom.xml文件中添加以下依赖:

<!-- PDF 动态填充 start --><dependency>    <groupId>com.itextpdf</groupId>    <artifactId>itextpdf</artifactId>    <version>5.5.12</version></dependency><dependency>    <!-- 不使用 asian 包里的字体可不引入,中文仅有 ST-Light(华文宋体) 一个字体  -->    <groupId>com.itextpdf</groupId>    <artifactId>itext-asian</artifactId>    <version>5.2.0</version></dependency><!--  PDF 动态填充 end --><!-- 图片动态填充 start --><dependency>    <groupId>org.apache.xmlgraphics</groupId>    <artifactId>batik-all</artifactId>    <version>${batik.version}</version>    <type>pom</type></dependency><dependency>    <groupId>org.apache.xmlgraphics</groupId>    <artifactId>batik-transcoder</artifactId>    <version>${batik.version}</version></dependency><!-- 转码实现,可替代 --><dependency>    <groupId>org.apache.xmlgraphics</groupId>    <artifactId>batik-codec</artifactId>    <version>${batik.version}</version></dependency><!-- 图片动态填充 end -->

下载地址:

2、使用iText 创建 PDF 文件

先实例化一个iText中 Document类,使用PdfWriter创建一个pdf,并且在新pdf的段落上添加一些文字。代码如下,

import com.itextpdf.text.Image;import com.itextpdf.text.pdf.*;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.io.FileNotFoundException;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Paragraph;public class Main {  public static void main(String[] args) {        try {            //添加文本            //创建文档对象            Document document = new Document();            //实例化生成的文档            PdfWriter.getInstance(document, new FileOutputStream(                    "MyFirstDynamic.pdf"));            //打开文档            document.open();            //在文档中添加文本内容            document.add(new Paragraph("Hello World! ;));            //关闭文档对象            document.close();        } catch (DocumentException e) {            e.printStackTrace();        } catch (FileNotFoundException e) {            e.printStackTrace();        }  }}

3、使用iText 添加图片

使用iText 可以将图像添加到PDF文件中,代码如下,

import com.itextpdf.text.Image;import com.itextpdf.text.pdf.*;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.io.FileNotFoundException;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Paragraph;public class Main {  public static void main(String[] args) {        try {            //添加文本            //创建文档对象            Document document = new Document();            //实例化生成的文档            PdfWriter.getInstance(document, new FileOutputStream(                    "MyFirstDynamic.pdf"));            //打开文档            document.open();            //在文档中添加文本内容            document.add(new Paragraph("Hello World! ;));            document.close();            InputStream is = null;            OutputStream os = null;            PdfStamper stamper = null;            PdfReader pdfReader = null;            int pageNo;            float x, y, width, height;            is = new FileInputStream("MyFirstDynamic.pdf");            os = new FileOutputStream("MyFirstDynamic_pic.pdf");            pdfReader = new PdfReader(is);            // 读取模板文件            stamper = new PdfStamper(pdfReader, os)            //固定页码、图像大小及图像位置(左下角为 0 ,0)            pageNo = 1;            x = 100;            y = 700;            width = 50;            height = 50            //设置图像            PdfContentByte pdfContentByte = stamp.getOverContent(pageNo);            Image img = Image.getInstance(IMAGE_PATH);            // 图像宽高 (可根据预设控件大小)            img.scaleAbsolute(width, height);            //设置图片位置(以左下角为起点            img.setAbsolutePosition(x, y);            pdfContentByte.addImage(img);            stamper.close();            pdfReader.close()            } catch (Exception e) {                e.printStackTrace();            } finally {                if (null != stamper) {                    try {                        stamper.close();                    } catch (Exception e) {                        e.printStackTrace();                    }                }                if (null != pdfReader) {                    try {                        pdfReader.close();                    } catch (Exception e) {                        e.printStackTrace();                    }                }                if (os != null) {                    try {                        os.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }                if (is != null) {                    try {                        is.close();                    } catch (IOException e) {                        e.printStackTrace();                    }                }            }            System.out.println("图像填充执行完毕");  }}

3、设置页面布局

iText可以创建新的PDF文档,也可以编辑已存在的文档。设置页面布局是创建PDF时的一个重要步骤,包括页面大小、页边距等。代码如下,

import com.itextpdf.text.*;import com.itextpdf.text.pdf.*;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.io.FileNotFoundException;public class Main {  public static void main(String[] args) {        try {            //添加文本            //创建文档对象            Document document = new Document(PageSize.A4.rotate());//横向            document.setMargins(36, 0, 36, 0);//单位磅 1英寸=72磅            //实例化生成的文档            PdfWriter.getInstance(document, new FileOutputStream(                    "MyFirstDynamic.pdf"));            //打开文档            document.open();            //在文档中添加文本内容            document.add(new Paragraph("Hello World! ;));            document.add(new Paragraph("*****************************************************"));            //3.镜像 水平页边距            document.setMarginMirroring(true);//镜像 水平页边距   交换 左右页边距            document.setMarginMirroringTopBottom(true);//镜像 竖直页边距   交换 顶部和底部页边距            //4.换页            //setPageSize 要在换页前使用    才可以作用于新的页面            document.setPageSize(PageSize.A4);            document.newPage();            document.add(new Paragraph("*****************************************************"));            document.close();        } catch (DocumentException e) {            e.printStackTrace();        } catch (FileNotFoundException e) {            e.printStackTrace();        }  }}

参考文档:

标签: #itext api文档