page contents

Java教程——Java操作PDF文件!

本文讲述了Java教程——Java操作PDF文件!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2023-10-GLMSQjQI6531d97833bc8.png

本文讲述了Java教程——Java操作PDF文件!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

iText,是 一个开源 Java 库,支持 PDF 文档的开发和转换。其特点有:支持表格,图片,定制字体等。

maven 依赖

使用 iText 的时候需要用 maven 依赖如下:


<dependency>

    <groupId>com.itextpdf</groupId>

    <artifactId>itext7-core</artifactId>

    <version>7.2.0</version>

    <type>pom</type>

</dependency>

简单实例

建立 PDF 需要 4 个步骤:


创建 一个 PdfWriter,用于定义 pdf 的路径地址

创建一个 pdf 文档,Document,与 PdfWriter 关联

向文档中添加内容

关闭文档

下面从 hello world 开始。


import com.itextpdf.kernel.pdf.PdfDocument;

import com.itextpdf.kernel.pdf.PdfWriter;

import com.itextpdf.layout.Document;

import com.itextpdf.layout.element.Paragraph;


public class PDFDemo {


    public static void main(String[] args) {

        try{

            PdfWriter pdfWriter = new PdfWriter("./demo.pdf");

            PdfDocument pdfDocument = new PdfDocument(pdfWriter);

            Document document = new Document(pdfDocument);

            document.add(new Paragraph("Hello World"));

            document.close();

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}

示例结果:

attachments-2023-10-vHOaE3gU6531d92db7c60.png

中文

iText 不支持默认是不支持中文字体的,所以需要定义 PdfFont 中文字体样式。使用 PdfFontFactory 的 createFont 创建一个中文字体,并将中文字体设置到 document 中。


public static void main(String[] args) {

    try{

        PdfWriter pdfWriter = new PdfWriter("./demo1.pdf");

        PdfDocument pdfDocument = new PdfDocument(pdfWriter);

        //字体文件可以使用 windows 系统中的

        PdfFont font = PdfFontFactory.createFont("E:\\pdfProject\\src\\main\\java\\simhei.ttf");

        Document document = new Document(pdfDocument).setFont(font);

        document.add(new Paragraph("Hello World!你好,itext"));

        document.close();

    }catch(Exception e){

        e.printStackTrace();

    }

}

示例结果:

attachments-2023-10-FJkBGL2e6531d91c69573.png

表格

在项目中经常需要 PDF 文件中打印表格,这时就可以使用 Table 对象,创建一个个单元格并将表格内容写入单元格中。


public static void main(String[] args) {

    try{

        PdfWriter pdfWriter = new PdfWriter("./demo2.pdf");

        PdfDocument pdfDocument = new PdfDocument(pdfWriter);

        PdfFont font = PdfFontFactory.createFont("E:\\pdfProject\\src\\main\\java\\simhei.ttf");

        Document document = new Document(pdfDocument).setFont(font);

        Table table = new Table(4);

        table.setWidth(500);

        table.addHeaderCell("header 1").addHeaderCell("header 2").addHeaderCell("header 3").addHeaderCell("header 4");

        for(int i = 0; i < 16; i++) {

            table.addCell("cell " + i);

        }

        document.add(table);


        document.close();

    }catch(Exception e){

        e.printStackTrace();

    }

}

示例结果:

attachments-2023-10-EOiYR3e06531d90c37d1a.png

图片

图片的设置也很简单,创建 Image 对象填充到 document 中就可以了。


public static void main(String[] args) {

    try{

        PdfWriter pdfWriter = new PdfWriter("./demo3.pdf");

        PdfDocument pdfDocument = new PdfDocument(pdfWriter);

        PdfFont font = PdfFontFactory.createFont("E:\\pdfProject\\src\\main\\java\\simhei.ttf");

        Document document = new Document(pdfDocument).setFont(font);

        Image img = new Image(ImageDataFactory.create("E:\\pdfProject\\src\\main\\java\\img.png"));

        document.add(img.setAutoScale(true));


        document.close();

    }catch(Exception e){

        e.printStackTrace();

    }

}

示例结果:

attachments-2023-10-i6Cvng9v6531d8f9a6989.png

总结

本文从 iText 最基本的用法,分别介绍从表格,图片,中文来介绍 iText,希望能够帮助到你。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2023-10-20 09:36
  • 阅读 ( 318 )
  • 分类:Java开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1316 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章