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"。

相关推荐
SamChan9014 小时前
用Python+Requests批量翻译PDF:从脚本到调度
后端·python·microsoft·ai·pdf·机器翻译
SamChan901 天前
PDF翻译API的JWT签名鉴权与速率限制设计:安全实战指南
网络·安全·pdf
AmyLin_20011 天前
PDF 脱敏技术【1】:PDF 脱敏不是盖黑框:为什么敏感信息仍能被复制,正确的保护方式是什么?
安全·pdf·sdk·脱敏·文档安全·pdf 脱敏·智能脱敏
denggun123451 天前
PDF解析 Mineru
pdf
10mAh1 天前
【PaddleOCR】扫描版 PDF 无法复制、RAG 检索为空怎么解决?——OCR 解析与版面还原实战
前端·pdf·ocr
慧都小妮子2 天前
PDF图片提取总“褪色“?Aspose.PDF 多层级提取能力详解
pdf·c#·.net·图片处理·文档处理·色彩空间
SamChan902 天前
PDF翻译中的并发控制:用Semaphore防止API限流与资源耗尽
java·jvm·pdf
ilvcn3 天前
在线 PDF 翻译工具实测:整份翻译保留表格版式,长文档处理方案
pdf
accept 99%3 天前
python版提取 PDF 的常用第三方库与工具
开发语言·python·pdf
AmyLin_20014 天前
PDF 色彩保真工程实践【6】怎么证明“真的无损“?——SHA-256 校验与三个真实踩坑
c++·pdf·内存·sdk·调试·印刷