本文很多资源来自http://developers.itextpdf.com/content/itext-7-jump-start-tutorial

itext7整体结构

在层次结构的顶部,我们找到了IPropertyContainer界面。此接口定义设置,获取和删除属性的方法。这个接口有两个直接的子接口:IElement和IRenderer。该IElement接口将由例如来实现Text,Paragraph和Table。这些是我们将直接或间接添加到文档中的对象。该IRenderer接口将由例如来实现TextRenderer,ParagraphRenderer和TableRenderer。这些渲染器由iText在内部使用,但如果我们想要调整渲染对象的方式,我们可以将它们子类化。

该IElement接口有两个自己的子接口。该ILeafElement接口将通过不包含任何其他元素的构建块来实现。例如:您可以向对象添加元素Text或Image元素Paragraph,但不能向元素Text或Image元素添加任何对象。Text并Image实现ILeafElement接口以反映这一点。最后,还有一个LargeElement界面,允许您在添加完所有内容之前渲染对象。它由Table类实现,这意味着在完成添加所有文件之前将表添加到文档中Cell对象。通过这样做,您可以减少内存使用:可以在内容完成之前呈现的所有表内容可以从内存中刷新。

该IPropertyContainer接口是由抽象的实现ElementPropertyContainer类。这个类有三个子类;

Style:是各种样式属性,如利润率,填充和旋转的容器。它继承了抽象ElementPropertyContainer类中的样式值,如宽度,高度,颜色,边框和对齐方式。
RootElement:定义的方法来添加内容,使用任一种add()方法或showTextAligned()方法。
Document:将此内容添加到页面。
Canvas:不知道页面的概念。它充当高级布局 API和内核 API 之间的桥梁。
给出了AbstractElement实现的概述。

从类派生的所有类都AbstractElement实现了IElement接口。Text,Image,Tab并且Link也实现了ILeafElement接口。ILargeElement接口仅由Table类实现。基本构建块使您可以轻松创建标记的PDF。

各个实现类的功能:

所有向文档添加的内容都是以对象为单位的,如Phrase、Paragraph、Table、Graphic对象等。比较常用的是段落(Paragraph)对象,用于向文档中添加一段文字。

PdfWriter是一个可以写PDF文件的对象,它不需要了解它要写的pdf的实际内容是什么,PdfWriter不需要知道文档是什么,一旦文件结构完成,它就写不同的文件部分,不同的对象,构成一个有效的文档。PdfWriter的初始化参数可以是文件名或者Stream。

Document是创建自给自足的PDF时的默认根元素。它管理高级操作,例如设置页面大小和旋转,添加元素以及在特定坐标处写入文本。它不了解实际的PDF概念和语法。可以通过扩展DocumentRenderer类并使用该setRenderer()方法设置此自定义渲染器的实例来修改Document的渲染行为。

Canvas 用于在使用a上的绝对位置定义的特定矩形内添加BlockElement和Image内容PdfCanvas。Canvas不知道页面的概念,不适合矩形的内容将丢失。此类充当高级布局API和内核API之间的桥梁。

pdf页面元素对象

Text:是任意长度的文本。它是可以承载特定布局属性的最小内容。
Link:链接,可单击部分{@link Text}。这个概念在很大程度上类似于HTML锚标签。
Image:图片处理
Paragraph:表示文本和图形的自包含块的布局元素。
Div:它定义文档中的一个部分,该部分将具有一些共享的布局属性。它将尽可能占用尽可能多的水平空间。
List:列表处理
ListItem:列表项是一个布局元素,它是List中的一个条目
Table:表格处理
Cell:单元格处理
LineSeparator:行分隔符

pdf常见操作

1、生成一个PDF
2、设置页面大小,页面背景色,页边空白,Title,Author,Subject,Keywords
3、设置密码
4、添加Page
5、添加水印(背景图)
6、插入页面元素
7、删除Page
8、插入Page
9、排序page
10、目录
11、Header, Footer
12、文字对齐
13、幻灯片放映
14、压缩PDF到Zip
15、分割PDF
16、合并PDF
17、添加注释
18、设置页眉页脚

插入元素相关操作

1、插入Chunk, Phrase, Paragraph, List
2、插入Anchor, Image, Chapter, Section
3、画图
4、插入图像
5、插入一个Table
6、设置段落
7、表格嵌套
8、设置表格宽度
9、设置表格前后间隔
10、设置单元格宽度
11、设置单元格高度
12、设置单元格颜色
13、设置表头
14、分割表格
15、设置单元格留白
16、设置单元格边框
后续章节将一步一步实现上面操作,同时学习从pdf模板生成pdf文件,以及html生成pdf文件,敬请期待!

itext7接口和类概述以及pdf常见操作相关推荐

  1. java comparator接口类_常见的接口与类 -- Comparator

    接口Comparator 1.1 前面我们讲过Java提供了一个用于比较的接口Comparable,提供了一个比较的方法,所有实现该接口的类,都动态的实现了该比较方法.实际上Java中除了比较一个接口 ...

  2. PHP类继承、接口继承关系概述

    PHP类继承: PHP类不支持多继承,也就是子类只能继承一个父类,但是支持多层次继承,比如: 1 class frist{ 2 public function __construct(){ 3 ech ...

  3. 黑马程序员--Java学习日记之集合(collection类与list接口)及泛型概述

     ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一,集合概念   之前我们存储大量的对象,可以使用数组:   但数组有两个缺陷:   1. ...

  4. 接口包含内容概述2——委托与事件之惑

    前言: 上篇博文<接口包含内容概述1--接口相关概述及接口中属性的实现>最后留有一疑问:一个接口为什么可以包含一个事件,却不能包含一个委托呢? 在这里要想对这个问题解答,首先必须搞清楚委托 ...

  5. 【C++】vector类概述

    vector 一.标准库中的vector 1.1 vector的介绍 1.2 vector的常用接口 1.2.1 vector的常见构造 1.2.2 vector类对象的访问及遍历操作 1.2.3 v ...

  6. OutputFormat接口实现类

    OutputFormat接口实现类 OutputFormat接口实现类概念 自定义OutputFormat介绍 1. 使用场景 2. 自定义OutputFormat步骤 自定义OutputFormat ...

  7. wxWidgets:可用类概述

    wxWidgets:可用类概述 基本窗口 窗口布局 托管窗口 菜单 控件 验证器 选择器控件 杂项窗口 窗口停靠 (wxAUI) 常用对话框 HTML 设备上下文 图形上下文类 图形设备接口 图像和位 ...

  8. 【大话Hibernate】Hibernate的核心接口和类

    Hibernate的核心类和接口一共有6个,分别为:Session.SessionFactory. Transaction.Query.Criteria和Configuration.这6个核心和类接口 ...

  9. 计算机操作基本知识公务员,公务员计算机类操作系统知识.pdf

    软件设计师 (原高级程序员 ) 复习资料 专题三:操作系统知识 1.操作系统知识: 1.1 基本概述 操作系统是一个大型的软件系统,是为了提高计算机系统资源(硬件和软件资源)的利用效率并方便 用户使用 ...

  10. public double discount(double price) 应用接口的类实现

    简介: Spring 框架是一个非常优秀的轻量级 Java 框架,它的资源访问方式高度简化了应用程序的资源访问,将应用程序从底层不同的资源访问中解放出来,消除了不同资源访问方式的差异.Spring 框 ...

最新文章

  1. FFT频谱泄露和加窗 (一)
  2. 使用Docker-Compose,如何执行多个命令
  3. 写在NOIP2018后
  4. MySQL配置文件参数详解
  5. lua cURL使用笔记
  6. python3 selenium安装教程_Mac OS下搭建 python3+pycharm+selenium+Chrome环境
  7. 【并查集】Union Find
  8. 利用脚本设置本机IP地址
  9. 【算法】07 AM-MCMC算法C++实现
  10. 图标文字对齐的几种常见方法
  11. VC写的QQ连连看外挂
  12. Java调用用户芝麻信用分
  13. 你喜欢天长地久,还是曾经拥有?
  14. Net分布式系统之五:微服务架构
  15. Python数字图像处理---1.1图像的像素格式与图像读写
  16. java 编写线程公共类_Java实现线程间通信方式
  17. Linux开机自启的三种方式
  18. 智能可以把碎片的事实价值弥聚化
  19. 滑块拖动验证码智能识别验证码技术(持续更新)
  20. 获国际评级机构认可,波司登或为国产羽绒服树立参考“样本”

热门文章

  1. 【年薪百万之IT界大神成长之路零】年薪百万之IT界大神成长之路
  2. PHP运行Python脚本
  3. python爬虫之一:爬取网页小说(魂破九天)
  4. 微信好友保存在服务器,微信好友数据备份好,封号也不怕!
  5. Error: Network Error
  6. 【计算机网络】计网笔记知识点整理篇(1-3章,后续章节持续更新)
  7. 加装固态硬盘+安装win10系统
  8. Blender 基础 骨架-02 骨架的各种呈现方式
  9. 【面试必过系列,15个经典面试问题及回答思路
  10. C++ 设计模式 面向对象设计原则 相关概念介绍(结合UnrealEngine4)