📄 PDF 文件
各种大小的测试用 PDF 文件
✅ 永久免费
🚫 无需注册
⚡ 即刻下载
100 KB
PDF
102,400 bytes
application/pdf
100 MB
PDF
104,857,600 bytes
application/pdf
10 KB
PDF
10,240 bytes
application/pdf
10 MB
PDF
10,485,760 bytes
application/pdf
1 MB
PDF
1,048,576 bytes
application/pdf
25 MB
PDF
26,214,400 bytes
application/pdf
500 KB
PDF
512,000 bytes
application/pdf
50 MB
PDF
52,428,800 bytes
application/pdf
5 MB
PDF
5,242,880 bytes
application/pdf
关于PDF 文件
免费提供从 10 KB 到 100 MB 的测试用 PDF,可用于上传大小限制测试、验证 PDF 处理库、确认邮件附件上限以及报表生成系统的性能测试。
PDF 在文件末尾保存指向对象位置的交叉引用表(xref),因此传输中断会导致整个文档无法读取,很适合用于截断检测测试。
常见使用场景
- PDF 上传的大小限制测试
- 验证 PDF.js 等查看器库的行为
- 验证邮件附件上限(Gmail 为 25 MB)
- 测量 OCR 或文本提取库的处理时间
相关参考与文章
📖 常见的坑
从 10 KB 到 100 MB、按字节对齐的 PDF,可用于确认上传上限与验证 PDF 处理库。内容为测试而生成,不含真实文档那样的嵌入字体、表单与批注。要试这些请改用手边的真实文件。
| 情形 | 会发生什么 | 怎么处理 |
|---|---|---|
| gzip 压缩后没变小 | PDF 内部的流已经用 Flate 压过。传输时再压一次最多省几个百分点,只是白费 CPU。 | 不要把 application/pdf 加进 nginx 的 gzip_types,默认也不包含。想省带宽,减少页数或图片分辨率更有效。 |
| 很小的 PDF 却把内存吃光 | 所需内存取决于解码后的内容而非文件大小。1 MB 的 PDF 里若有 10,000 × 10,000 像素的图片,渲染时会占用数百 MB。 | 除大小外还要限制页数与分辨率。使用 Ghostscript 或 pdftoppm 时显式指定 -r(dpi),并逐页处理以释放内存。 |
| 非 PDF 文件被当作 PDF 放行 | Content-Type: application/pdf 与 .pdf 扩展名都只是发送方的自我声明,两者都不构成校验。 |
检查开头 4 字节是否为 25 50 44 46(%PDF)。同时确认结尾是否有 %%EOF,还能顺带发现截断。 |
通过了大小与格式,仍需另行处理加密 PDF、内嵌 JavaScript 的 PDF、引用外部资源的 PDF。仅供浏览就交给沙箱内的查看器;若在服务器端打开,请禁用 JavaScript 执行。