结构
xref % 交叉引用表从这里开始
0 6 % 引用表长为6,从0开始。
0000000000 65535 f %特别目录
0000000015 00000 n % 对象1的字节偏移量为150000000074 00000 n
0000000192 00000 n
0000000291 00000 n
0000000409 00000 n % 对象5的字节偏移量为409
trailer % 预览块从这里开始
<</Root 5 0 R/Size 6>>
startxref %交叉引用表开始关键字
459 % 交叉引用表的字节偏移量
%%EOF %文件结束标志
trailer结构
trailer
<</Size 55 %文件交叉引用表中的条目总数(通常等于文件中的对象数加1)/Root 5 0 R %引用的对象为Type:Catalog
/Info 3 0 R % 表示文档信息,关于文档的作者、创建日期、创建软件、修改日期、生成软件和标题的元数据。应用对象如下:3 0
/ID[<C0EE61618FEFB24EBB53E1489B5B192A><6643E9C5C92D214C9BB673C98AA811E3>]
/Prev 187206>>
startxref
3 0 obj <<
/Author(LAPTOP-PROPF3AI\\lgj_h \(LAPTOP-PROPF3AI\)) %文档的作者
/CreationDate(D:20221013205153+08'00') %创建日期
/Creator(SOLIDWORKS 2020 SP5.0 \(2020296\)) %创建文档的软件
/ModDate(D:20221013205155+08'00') %文档的修改日期
/Producer(? S O L I D W O R K S P D F Q鷕Hz ^?/Title(?W鶲S) %指定了生成文档的软件或工具
>> endobj
文档目录(Catalog)结构
5 0 obj <<
/Metadata 2 0 R
/Outlines 39 0 R
/PageMode/UseOutlines
/Pages 1 0 R
/Type/Catalog
>> endobj
键 | 值类型 | 值 |
---|---|---|
/Type* | name | 必须是/Catalog |
/Pages* | 间接引用字典 | 页面树的根节点。页面树在第42页的“页面和页面树”中讨论 |
/PageLabels | number tree | 一个数字树,给出了该文档的页面标签。这种机制允许文档中的页面具有比1,2,3更复杂的编号….例如,书籍的前言可以编号为i,ii,iii ……,而主要内容 再次以1,2,3开始….这些页面标签显示在PDF查看器中 - 它们与打印输出无关 |
/Names | dictionary | 名字词典。它包含各种名称树,它们将名称映射到实体,以防止必须使用对象编号直接引用它们 |
/Dests | dictionary | 将名称映射到目标的字典。目的地是超链接向用户发送的PDF文档中的位置的描述 |
/ViewerPreferences | dictionary | 一个查看器首选项字典,允许标志指定在屏幕上查看文档时的PDF查看器的行为,例如打开文档的页面,初始查看比例等 |
/PageLayout | name | 指定PDF查看器要使用的页面布局。值为/SinglePage,/OneColumn,/TwoColumnLeft,/TwoColumnRight,/TwoPageLeft,/TwoPageRight。(默认值:/SinglePage)。详情见ISO 32000-1:2008的表28 |
/PageMode | name | 指定PDF查看器要使用的页面模式。值为/UseNone,/UseOutlines,/UseThumbs,/FullScreen,/UseOC,/UseAttachments。 (默认值:/UseNone)。详情见ISO 32000-1:2008的表28 |
/Outlines | 间接引用字典 | 大纲字典是文档大纲的根,通常称为书签 |
/Metadata | 间接引用流 | 文档的XMP元数据 - 请参阅第93页的“XML元数据” |
页面(Page)结构
<<
/Contents[11 0 R 12 0 R 13 0 R 14 0 R 15 0 R 16 0 R 17 0 R 18 0 R]/ %图形文字内容
CropBox[0.0 0.0 1190.55 841.89]/ %剪辑框的尺寸
MediaBox[0.0 0.0 1190.55 841.89]/ %媒体框的尺寸
Parent 1 0 R/ % 页面父类,用于构建页面的层次结构。
Resources<</Font<</C2_0 7 0 R/C2_1 8 0 R/C2_2 9 0 R/C2_3 10 0 R>>/ %资源引用- Font: 指定了页面所需的字体资源。 - C2_0、C2_1、C2_2、C2_3: 这些是字体资源的名称,用于在页面中引用相应的字体。他们的引用对象分别是:7 0 R,8 0 R,9 0 R和10 0R
ProcSet[/PDF/Text/ImageC] %指定了处理集,用于指定页面所需的处理操作/XObject<</Im0 38 0 R>>>> % - XObject: 包含了页面中的图像,对象的引用38 0 R
/Rotate 0 %转到角度
/Type/Page %- Type: 指定了对象的类型,对象Page为页面
>>
字体(Font)结构
<<
/BaseFont/QTVTBX+HYSWLongFangSong %字体的基本名称"QTVTBX+HYSWLongFangSong"
/DescendantFonts 24 0 R %当前字体的子字体,如下
/Encoding/Identity-H %编码方式
/Subtype/Type0 % 字体类型 Type0
/ToUnicode 25 0 R %包含用于提取文本内容的指令的流
/Type/Font %结构类型Font
>>
24 0 obj <<
/BaseFont/QTVTBX+HYSWLongFangSong
/CIDSystemInfo 19 0 R %字体使用的字符编码系统
/CIDToGIDMap/Identity
/DW 1000 %默认字宽
/FontDescriptor 22 0 R %字体描述符字典,提供字体的度量(字形宽度除外,其中包含了字体的其他属性,如字形描述、字体类型、字体文件等信息。)
/Subtype/CIDFontType2 %CID到GID的映射方式为Identity,即CID和GID的值相等
/Type/Font
/W[3[350]14[492]16[493 350]19 24 351 25 27 350 36[350]43[350]48[373]53[350]68[293]88[292]101[699]104[700]695[700]816[700]835[699]
968[700]1046[700]1067[700]1167[700]1311[700]1891[700]2399[700]2787[700]3124[700]
3149[700]3245[700]3250[700]3621[700]3666[700]3682[700]3730[700]3757[699]3774[699]
4378[700]4406[700]4536[700]4968[699]6212[699]6293[700]6311[701]6523[700]7006[700]
7199[699]7424[700]8549[699]8563[700 699]]
>> endobj
一: Text Sections
运算符BT(开始文本)和ET(结束文本)在文本部分周围形成括号。 用于在页面的内容流中显示文本的运算符可能仅出现在BT和ET之间。 但是,用于改变文本状态的操作符不受这种限制。 文本部分还可能包含其他操作员改变一般图形状态。
1. 0. 0. 1. 50. 700. cm Position at (50, 700)
BT Begin text block
/F0 36. Tf Select /F0 font at 36pt
(Hello, World!) Tj Place the text string
ET End text block
参数 | 描述 | 操作数 | 操作符 | 初始值 |
---|---|---|---|---|
Tc | Character spacing | charSpace | Tc将字符间距设置为charSpace,以未缩放的文本空间单位表示 | 0 |
Tw | Word spacing | wordSpace | Tw将单词间距设置为wordSpace,以未缩放的文本单位表示 | 0 |
Th | Horizontal spacing | scale | Tz将水平缩放设置为(scale / 100) | 100 (即正常间距) |
Tl | Leading | leading | TL设置前导的文本,以未缩放的文本空间单位表示 | 0 |
Tf, Tfs | Font, Font Size | font, size | Tf选择尺寸大小点的字体字体 | 没有默认值,但必须进行指定 |
Tmode | Rendering Mode | render | Tr将文本渲染模式设置为渲染,即整数 | 0 |
Trise | Rise | rise | Ts将文本上升设置为上升,以未缩放的文本空间单位表示 | 0 |
操作数 | 操作符 | 功能 |
---|---|---|
x,y | Td | 将文本位置移动到下一行,偏移(x,y)。参数以未缩放的文本空间单位表示 |
x,y | TD | 将文本位置移动到下一行,偏移(x,y)。将前导设置为-y。参数以未缩放的文本空间单位表示 |
- | T* | 将文本位置移动到下一行。相当于前导Td的序列0(其中前导是当前文本的前导) |
a,b,c,d,e,f | Tm | 将文本矩阵和文本行矩阵设置为[a b 0 c d 0 e f 1]。与图形矩阵运算符cm不同,矩阵替换当前矩阵,而不是与其连接 |
string | Tj | 在当前位置显示字符串 |
string | ’ | 转到下一行,考虑前导和文本矩阵,并在新位置显示字符串 与使用T*后跟Tj相同 |
wordspace, charspace, string | ” | 将字间距设置为字空间,将字符间距设置为字符间距。转到下一行,考虑前导和文本矩阵,并在新位置显示字符串。相同的序列字空间Tw charspace Tc string’ |
array | TJ | 此运算符允许显示文本字符串,并调整各个字形位置(例如,字距调整)。该数组包含任意组合的字符串和数字。字符串条目显示为正常; 数字条目通过减去该数量(以文本空间单位的千分之一表示)水平调整文本矩阵 |
二:图形:图像,矢量图
Group | 用于 | 运算符 |
---|---|---|
图形状态运算符 | 更改图形状态(当前颜色,笔触宽度等) | w J j M d ri i gs q Q cm CS cs SC SCN sc scn G g RG rg Kk |
路径建设运算符 | 构建线条,曲线和矩形 | m l c v y h re |
路径绘画运算符 | 笔划和填充路径,或使用它们来定义剪裁区域 | S s f F f* B B* b b* n W W* |
其他绘画运算符 | 着色图案和内嵌图像 | sh BI ID EI Do |
文本运算符 | 选择并以各种字体和方式显示文本 | Tc Tw Tz TL Tf Tr Ts Td TD Tm T* Tj TJ ‘ ‘’ d0 d1 |
标记内容和兼容性运算符 | 用于划分流的部分 | MP DP BMC BDC EMC BX EX |
- 以下是PDF中w J j M d ri i gs q Q cm CS cs SC SCN sc scn G g RG rg Kk运算符及其含义:
- - w:设置线宽(线的粗细)。
- - J:设置线的端点样式(如平头、圆头、方头等)。
- - j:设置线的连接样式(如斜接、圆接等)。
- - M:将当前的绘制位置移动到指定的坐标。
- - d:绘制一个矩形。
- - ri:设置文字的渲染模式(如填充、描边等)。
- - i:设置当前的图像状态(如渲染模式、颜色空间等)。
- - gs:应用一个图形状态参数字典。
- - q:保存当前的图形状态。
- - Q:恢复之前保存的图形状态。
- - cm:设置当前的变换矩阵。
- - CS:设置颜色空间为设备无关的颜色空间。
- - cs:设置颜色空间为设备相关的颜色空间。
- - SC:设置非描边操作的颜色。
- - scn:设置非描边操作的颜色及其附加参数。
- - G:设置描边操作的灰度值。
- - g:设置非描边操作的灰度值。
- - RG:设置描边操作的RGB颜色值。
- - rg:设置非描边操作的RGB颜色值。
- - K:设置描边操作的CMYK颜色值。
- - k:设置非描边操作的CMYK颜色值。
m l c v y h re:
- - m:将当前的绘制位置移动到指定的坐标。
- - l:从当前的绘制位置绘制一条直线到指定的坐标。
- - c:绘制三次贝塞尔曲线,通过控制点来定义曲线的形状。
- - v:绘制垂直于前一个控制点的三次贝塞尔曲线。
- - y:绘制水平于前一个控制点的三次贝塞尔曲线。
- - h:关闭当前的路径子路径,并将绘制位置移动到子路径的起始点。
- - re:绘制一个矩形。
S s f F f* B B* b b* n W W*:
- - S:设置描边操作的线条样式。
- - s:关闭当前的路径子路径,并将绘制位置移动到子路径的起始点。
- - f:填充当前的路径。
- - F:填充和描边当前的路径。
- - f*:根据奇偶规则填充当前的路径。
- - B:填充和描边非零环绕规则的当前路径。
- - B*:填充和描边奇偶规则的当前路径。
- - b:关闭当前的路径子路径,并填充其内部区域。
- - b*:关闭当前的路径子路径,并根据奇偶规则填充其内部区域。
- - n:结束当前的路径而不进行绘制。
- - W:设置描边操作的线条宽度。
- - W*:设置描边操作的线条宽度,以用户坐标为单位。
sh BI ID EI Do:
- - sh: 设置阴影效果。
- - BI: 开始一个反色(反转)的图像。
- - ID: 开始一个图像数据对象。
- - EI: 结束一个图像数据对象。
- - Do: 在图形状态中执行一个图形对象。
Tc Tw Tz TL Tf Tr Ts Td TD Tm T* Tj TJ ‘ ‘’ d0 d1:
- - Tc:设置字符间距(Character Spacing)。
- - Tw:设置字间距(Word Spacing)。
- - Tz:设置字体尺寸的缩放因子(Horizontal Scaling)。
- - TL:设置文本的领先(Leading)。
- - Tf:设置字体和字体大小(Font)。
- - Tr:设置文本渲染模式(Rendering Mode)。
- - Ts:设置文本的上升(Rise)。
- - Td:移动文本位置(Move Text Position)。
- - TD:设置文本位置和字距(Move Text Position and Set Leading)。
- - Tm:设置文本矩阵(Text Matrix)。
- - T*:移动到下一行的起始点(Next Line)。
- - Tj:显示文本(Show Text)。
- - TJ:显示文本,支持字符间距调整(Show Text, with Adjustments)。
- - ':移动到下一行并显示文本(Next Line Show Text)。
- - '’:移动到下一行并显示文本,支持字符间距调整(Next Line Show Text, with Adjustments)。
- - d0:设置水平显示文本(Horizontal Display Text)。
- - d1:设置垂直显示文本(Vertical Display Text)。
MP DP BMC BDC EMC BX EX:
- MP: 设置合并的路径(Merged Path)。
- - DP: 定义一个带有默认属性的路径(Define Path with Default Attributes)。
- - BMC: 开始一个文字块(Begin Marked Content)。
- - BDC: 开始一个带有属性的文字块(Begin Marked Content with Property List)。
- - EMC: 结束一个文字块(End Marked Content)。
- - BX: 开始一个兄弟层级(Begin Compatibility Section)。
- - EX: 结束一个兄弟层级(End Compatibility Section)。
参考文档: