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

相关推荐
wh39338 小时前
使用Python将PDF转换成word、PPT
python·pdf·word
开开心心就好19 小时前
免费PDF处理软件,支持多种操作
运维·服务器·前端·spring boot·智能手机·pdf·电脑
念九_ysl1 天前
Java 使用 OpenHTMLToPDF + Batik 将含 SVG 遮罩的 HTML 转为 PDF 的完整实践
java·开发语言·pdf
一头生产的驴1 天前
java整合itext pdf实现自定义PDF文件格式导出
java·spring boot·pdf·itextpdf
开开心心就好2 天前
批量PDF转换工具,一键转换Word Excel
开发语言·前端·学习·pdf·电脑·word·excel
老家的回忆3 天前
jsPDF和html2canvas生成pdf,组件用的elementplus,亲测30多页,20s实现
前端·vue.js·pdf·html2canvas·jspdf
Vertira3 天前
pdf 合并 python实现(已解决)
前端·python·pdf
十一0829933 天前
【PDF-XSS攻击】springboot项目-上传文件-解决PDF文件XSS攻击
spring boot·pdf·xss
qq_393828223 天前
PDF的图片文字识别工具
windows·pdf·电脑·软件需求·图片处理
wsxqaz3 天前
浏览器原生控件上传PDF导致hash值不同
算法·pdf·哈希算法