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

相关推荐
阿幸软件杂货间3 天前
Office转PDF转换器v1.0.py
开发语言·pdf·c#
reembarkation3 天前
使用pdfjs-dist 预览pdf,并添加文本层的实现
前端·javascript·pdf
reembarkation3 天前
vue-pdf 实现blob数据的预览
javascript·vue.js·pdf
Light603 天前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度(一气呵成)
linux·spring boot·pdf·gpcl6/ghostpcl·s3/oss·权限与审计·异步与进度
伟贤AI之路3 天前
【分享】中小学教材课本 PDF 资源获取指南
人工智能·pdf
东风西巷4 天前
PDFgear:免费全能的PDF处理工具
前端·pdf·软件需求
Sunny_yiyi4 天前
Java根据模版导出PDF文件
java·开发语言·pdf
小*-^-*九5 天前
php 使用html 生成pdf word wkhtmltopdf 系列2
pdf·html·php
千册5 天前
pyside6 的pdf显示测试 -- 01
开发语言·python·pdf
qq_172805595 天前
Go 语言 PDF 生成库综合比较与实践指南
开发语言·golang·pdf