iText官网图.png

一,PDF文件概述(便携式文档格式)【客观】

pdfPortable Document Format的简称,意为“便携式文档格式”),是由Adobe Systems用于与应用程序,操作系统,硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。
可移植文档格式是一种电子文件格式。这种文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件在开始使用PDF格式文件。
Adobe公司设计PDF文件格式的目的是支持跨平台上的,多媒体集成的信息出版和发布,尤其是提供对网络信息发布的支持。为了达到此目的, PDF具有许多其他电子文档格式无法相比的优点。PDF文件格式可以将文字、字型、格式、颜色及独立于设备和分辨率的图形图像等封装在一个文件中。该格式文件还可以包含超文本链接、声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高。
对普通读者而言,用PDF制作的电子书具有纸版书的质感和阅读效果,可以逼真地展现原书的原貌,而显示大小可任意调节,给读者提供了个性化的阅读方式。【引用百度】

二,简单生成(Java+iText)【主观】

工具:IDEA,Maven
引入依赖:

  1. <!--iText 相关依赖 -->
  2. <dependency>
  3. <groupId>com.itextpdf</groupId>
  4. <artifactId>itextpdf</artifactId>
  5. <version>5.5.10</version>
  6. </dependency>
  7. <!-- 输出中文,还要引入下面itext-asian.jar -->
  8. <dependency>
  9. <groupId>com.itextpdf</groupId>
  10. <artifactId>itext-asian</artifactId>
  11. <version>5.2.0</version>
  12. </dependency>

代码如下:

  1. package com.zhiyi.springboot.itext;
  2. import com.itextpdf.text.Document;
  3. import com.itextpdf.text.Paragraph;
  4. import com.itextpdf.text.pdf.PdfWriter;
  5. import java.io.FileOutputStream;
  6. /**
  7. * @author Zol
  8. * @date 2020-03-23 17:21
  9. * @description PDF简单生成
  10. */
  11. public class PdfBase {
  12. public static void main(String[] args) {
  13. // 1,新建Document对象[拿本作文本]
  14. Document document = new Document();
  15. // 2.建立一个PDF书写器(PdfWriter)与document对象关联,通过PDF书写器(PdfWriter)可以将内容写入文档并保存到本地。[拿笔]
  16. PdfWriter pdfWriter = null;
  17. try {
  18. // 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。
  19. pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("E:/PDFDemo/pdfBase.pdf"));
  20. // 3,打开文档[打开作文本]
  21. document.open();
  22. // 4,写入内容[写字]
  23. document.add(new Paragraph("Hello World!"));
  24. // 5,关闭文档[写完收工]
  25. document.close();
  26. // 6,关闭书写器[放下笔]
  27. pdfWriter.close();
  28. } catch (Exception e) {
  29. e.printStackTrace();
  30. }
  31. }
  32. }

微信截图_20200324110211.png