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

相关推荐
Right.W1 小时前
生成PDF文件(基于 iText PDF )
spring cloud·pdf
heart000_119 小时前
128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器
人工智能·自然语言处理·pdf
开开心心_Every19 小时前
便捷的Office批量转PDF工具
开发语言·人工智能·r语言·pdf·c#·音视频·symfony
斯~内克1 天前
基于Vue.js和PDF-Lib的条形码生成与批量打印方案
前端·vue.js·pdf
Eiceblue2 天前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
wh39332 天前
使用Python将PDF转换成word、PPT
python·pdf·word
开开心心就好3 天前
免费PDF处理软件,支持多种操作
运维·服务器·前端·spring boot·智能手机·pdf·电脑
Jinxiansen02113 天前
FileReader 文件读取与上传至后端 - Excel & PDF 示例
前端·vue.js·pdf·excel
念九_ysl3 天前
Java 使用 OpenHTMLToPDF + Batik 将含 SVG 遮罩的 HTML 转为 PDF 的完整实践
java·开发语言·pdf
晋人在秦 老K3 天前
大小不足5M,轻量级PDF阅读工具
windows·pdf·工具