PDF 裁切验证 — 公开夹具与期望值
"可核查的验证"应当意味着你可以自己重跑。本页公开 YYSI 浏览器内 PDF 裁切 的原创合成夹具、精确期望值与独立读取器方法。所有内容均为原创合成,不含任何真实文档。
夹具 1 — 已有 CropBox 的文件
下载 cropbox-origin.pdf(1 KB)。页面几何:MediaBox 600 × 800 pt,已有 CropBox (50, 100, 550, 700)——阅读器当前显示的是 500 × 600 pt 区域。这是大多数裁切工具会做错的情形。
| 输入边距 | 裁切后的期望 CropBox | 期望可见尺寸 |
|---|---|---|
| 四边 0 pt | (50, 100, 550, 700)——保持不变 | 500 × 600 pt |
| 四边 10 pt | (60, 110, 540, 690) | 480 × 580 pt |
· 零边距必须保持现有可见区域——如果工具把页面重置为 MediaBox(600 × 800),即未通过。
· 自 2026-11-13 起,YYSI 的 PDF 裁切以页面当前有效可见页框(有 CropBox 用 CropBox,否则 MediaBox)为基准,预裁切文件保持可见区域、非零 MediaBox 原点得以保留。
夹具 2 — 旋转、混合尺寸、一页预裁切
下载 multipage-rotation.pdf(1 KB)。三页:第 1 页 600 × 800、/Rotate 90;第 2 页 500 × 600、已有 CropBox (10, 10, 480, 580)、/Rotate 180;第 3 页 400 × 400、/Rotate 270。以四边 15 pt、页码范围 "2-3" 裁切时的期望结果:
| 页 | 裁切后的期望 |
|---|---|
| 1(Rotate 90) | 不动——在范围外;不添加 CropBox |
| 2(Rotate 180,预裁切) | CropBox (25, 25, 450, 550);旋转保留;可见 450 × 550 pt |
| 3(Rotate 270) | CropBox (15, 15, 370, 370);旋转保留;可见 370 × 370 pt |
· CropBox 位于未旋转的页面空间;180° 旋转宽高不变,90°/270° 在阅读器中宽高互换。
方法 — 自己重跑
- 打开 PDF 裁切,载入夹具,按上表输入边距,裁切并下载结果。
- 用独立的 PDF 读取器检查输出——不要用浏览器内置库。例如用 PyMuPDF:
- 与本页期望值逐项对照。
YYSI 的持续验证方式:同一真实引擎代码对这些夹具用浏览器同款库(pdf-lib)生成真实输出,再用 PyMuPDF 作为独立读取器逐页复核——页框、可见尺寸、旋转、页数与文本。该检查属于第一方回归套件。普通 A4(无 CropBox)四边裁 25.4 mm 得到的页框精确为 (72.00, 72.00, 523.28, 769.89)——2026-11-12 验证;对无 CropBox 页面,2026-11-13 的可见页框修复不改变该结果。
机器可读期望值
expected-values.txt 以纯文本列出以上全部期望。
限制,如实说明
· 裁切是隐藏内容;它不是脱敏,也从不删除文件中的数据。
· 任意形状裁切不在范围内(仅边/比例裁切)。
· 未做 iOS/Android 真机触摸测试;桌面与 390 px 手机浏览器流程已验证。
· 这是复现材料包,不是认证。夹具文件为 YYSI 原创合成作品,可用于测试;按现状提供。