像pdftable和pdfCell,都是操作table的为啥没有单独在pdf packege下面开一个table的包分类呢。
这样大量的类在同一个包下都很难找哇
像pdftable和pdfCell,都是操作table的为啥没有单独在pdf packege下面开一个table的包分类呢。
这样大量的类在同一个包下都很难找哇
这不是设计的问题,而是 java 语言规范所要求的,类必须在包 package 中
如果题主的疑惑点是为什么 com.itextpdf.text.pdf 包下面有这么多类,这个是由功能决定, itextpdf 提供了对 pdf 的深度操作,对 pdf 支持的操作越多,必然导致类越多啊,难道全挤在一个类里实现么
换句话说,它们都已经是难以再拆分的 独立 功能了,这样的功能就是有这么多,比如:
PdfWriter:用于将内容写入到PDF文件中,可以创建新文件或向已存在的文件添加内容。
PdfReader:用于读取和解析现有的PDF文件,可以提取文本、图像等元素,并对其进行处理。
PdfPTable:用于创建和管理表格结构,在PDF文档中添加复杂的表格布局。
PdfPCell:代表单元格对象,可以设置单元格样式、边框、背景色等属性。
Paragraph:代表一个段落对象,在PDF文档中添加文字内容,支持多种排版样式。
Phrase:代表一个短语对象,类似于Paragraph但更简单。通常作为段落中的一部分使用。
PdfContentByte:提供绘制图形和图像操作的方法,如绘制线条、填充颜色、插入图像等。
PdfAction:用于创建PDF中的交互动作,如链接、书签跳转、页面跳转等。
PdfAnnotation:代表PDF中的注释对象,可以添加各种注释类型,如文本框、批注、高亮等。
Chunk:代表最小单位的文本块,可设置字体、颜色、大小等属性,并在段落或短语内使用。
Font:用于定义字体样式和属性,如字体类型(宋体、微软雅黑)、字号、加粗等。
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答778 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.3k 阅读
这不是设计的问题,而是
java
语言规范所要求的,类必须在包package
中如果题主的疑惑点是为什么
com.itextpdf.text.pdf
包下面有这么多类,这个是由功能决定,itextpdf
提供了对 pdf 的深度操作,对 pdf 支持的操作越多,必然导致类越多啊,难道全挤在一个类里实现么换句话说,它们都已经是难以再拆分的 独立 功能了,这样的功能就是有这么多,比如:
PdfWriter
:用于将内容写入到PDF文件中,可以创建新文件或向已存在的文件添加内容。PdfReader
:用于读取和解析现有的PDF文件,可以提取文本、图像等元素,并对其进行处理。PdfPTable
:用于创建和管理表格结构,在PDF文档中添加复杂的表格布局。PdfPCell
:代表单元格对象,可以设置单元格样式、边框、背景色等属性。Paragraph
:代表一个段落对象,在PDF文档中添加文字内容,支持多种排版样式。Phrase
:代表一个短语对象,类似于Paragraph但更简单。通常作为段落中的一部分使用。PdfContentByte
:提供绘制图形和图像操作的方法,如绘制线条、填充颜色、插入图像等。PdfAction
:用于创建PDF中的交互动作,如链接、书签跳转、页面跳转等。PdfAnnotation
:代表PDF中的注释对象,可以添加各种注释类型,如文本框、批注、高亮等。Chunk
:代表最小单位的文本块,可设置字体、颜色、大小等属性,并在段落或短语内使用。Font
:用于定义字体样式和属性,如字体类型(宋体、微软雅黑)、字号、加粗等。BaseFont
:处理基础字体信息,支持从系统字体或外部TTF/OTF文件加载自定义字体。它们都已经是具体的实现了,不能 再拆分或融合
这不是通过设计能避免的,而是由功能或者说需求的 最大公约数 决定的,如果题主对
iText
的源码设计感兴趣,可以参考以下站点