PDF格式解析:Contents stream绘制指令解析

bash 复制代码
q
1 0 0 -1 0 841.9 cm
q
0 0 595.3 841.9 re
W* n
0.05 w
2 M
2 J
2 j
0 0 0 RG
q
BT
0 0 0 rg
/FT8 240 Tf
/GS13 gs
0.05 0 0 -0.05 90 84.17 Tm
<002B>Tj 120 -0 TD<0048>Tj 120 -0 TD<004F>Tj 120 -0 TD<004F>Tj 120 -0 TD<0052>Tj
ET
Q
q
BT
0 0 0 rg
/FT8 240 Tf
/GS13 gs
0.05 0 0 -0.05 126 84.17 Tm
<005A>Tj 120 -0 TD<0052>Tj 120 -0 TD<0055>Tj 120 -0 TD<004F>Tj 120 -0 TD<0047>Tj
ET
Q
Q
Q

这段代码描述了一系列 PDF 绘图指令,它们用于在 PDF 页面中绘制文本和图形。

让我逐步解释这段代码:

  • q: 保存当前的图形状态。
  • 1 0 0 -1 0 841.9 cm: 应用一个矩阵变换,将用户空间坐标系转换为页面空间坐标系。这个变换将 Y 轴翻转,并将坐标原点移动到页面的左下角。
  • q: 保存当前的图形状态。
  • 0 0 595.3 841.9 re: 绘制一个矩形,宽度为 595.3,高度为 841.9,即整个页面的大小。
  • W* n: 设置当前路径的填充模式为非零环绕规则。
  • 0.05 w: 设置线条宽度为 0.05 单位。
  • 2 M: 设置线段连接的样式为斜接。
  • 2 J: 设置线段端点的样式为圆形端点。
  • 2 j: 设置线段连接的样式为圆形。
  • 0 0 0 RG: 设置当前绘图状态下的线条颜色为黑色。
  • q: 保存当前的图形状态。
  • BT: 开始文本对象。
  • 0 0 0 rg: 设置当前绘图状态下的文本颜色为黑色。
  • /FT8 240 Tf: 设置当前文本字体为字体FT8,字号为 240。
  • /GS13 gs: 应用图形状态资源 GS13。
  • 0.05 0 0 -0.05 90 84.17 Tm: 设置文本变换矩阵,将文本水平放置,并移动到指定位置(90, 84.17)。
  • <002B>Tj 120 -0 TD<0048>Tj 120 -0 TD<004F>Tj 120 -0 TD<004F>Tj 120 -0 TD<0052>Tj: 绘制一系列字符 "HOOOR"。
  • ET: 结束文本对象。
  • Q: 恢复之前保存的图形状态。
  • q: 保存当前的图形状态。
  • 后续代码段类似地绘制了另一系列字符 "ZRUOG",并在不同的位置。

整体来说,这段代码绘制了两行文本,分别是 "HOOOR" 和 "ZRUOG"。

相关推荐
h周杰偷33 分钟前
vue 预览pdf 【@sunsetglow/vue-pdf-viewer】开箱即用,无需开发
前端·vue.js·pdf
itwangyang5209 小时前
2025 - 科研神器 - 批量处理 PDF、SVG、PNG 和 JPG 文件,将它们转换为彩色 TIFF 文件,并保存到指定的 tiff 文件夹中
数据库·pdf
maknul10 小时前
【学习笔记】AD智能PDF导出(装配文件)
笔记·学习·pdf
WCF向光而行11 小时前
如何为PDF文件创建口令密码
pdf
清山博客15 小时前
Java将PDF保存为图片
java·开发语言·pdf
life102415 小时前
pdf文档动态插入文字水印,45度角,旋转倾斜,位于文档中央,多行水印可插入中文
java·pdf·水印
归鸿铭15 小时前
Html 转pdf
java·pdf·html
wsd_ontheroad16 小时前
HTML 转 PDF
java·pdf·html
Java小王子呀21 小时前
java使用itext生成pdf
java·pdf
萧鼎1 天前
轻松解析 PDF 文档:深入了解 Python 的 pdfplumber 库
服务器·python·pdf