PDF压缩后文件小了,编号和金额还能看清吗?下面用同一份一页扫描PDF,对照默认压缩和JPEG图像质量参数,检查输出大小、页数与关键文字。
先保留原文件
教学输入只有图像,没有可提取文字。页面为595×842点,嵌入图像1785×2526像素。输入中包含编号DEMO-042、金额84.70和零值0.00,便于在相同位置比较。它不含客户资料。
ComPDF的PDF压缩接口支持优化标记、图像质量和算法等选项。下面是本次成功取得产物的请求;在服务端配置自己的COMPDF_API_KEY,不把真实密钥写进源码或浏览器。
curl--fail-with-body--requestPOST\'https://api-server.compdf.com/server/v2/process/pdf/compress'\--header"x-api-key:$COMPDF_API_KEY"\--form'file=@scan.pdf'\--form'optimizeFlags=BCOMPRESSIMAGE'\--form'colorImageQuality=30'\--form'colorImageCompressAlgorithm=jpeg'\--outputresponse.jsonresponse.json是接口响应,不能直接改名成PDF。检查HTTP状态、业务代码以及data中的处理状态;成功后从downloadUrl下载,核对文件头为%PDF-,再重新打开输出。若未返回成功状态或结果地址,记录错误并停止,不交付空文件。
同一输入得到什么结果
| 处理方式 | 文件字节数 | 相比原件减少 | 页数 |
|---|---|---|---|
| 原文件 | 177,557 | — | 1 |
| 默认参数,已取得的结果 | 177,133 | 约0.24% | 1 |
| BCOMPRESSIMAGE、JPEG、质量参数30 | 133,852 | 约24.6% | 1 |
默认结果来自此前对同一输入的调用;JPEG质量参数30的结果来自本次复测。参数30不是“保留30%画质”或识别准确率。质量参数70的本次请求仍返回NETWORK_ERROR,未得到产物,不能补出30与70的连续质量曲线,也不能由这一个成功请求估计稳定性。
在本次成功输出中,嵌入图像由PNG变为JPEG,像素尺寸仍为1785×2526。它是图像重新编码的结果,不据此声称无损或已经降低像素分辨率。
图:同一页按相同比例渲染;文件大小来自保存后的实际字节数。两图均为教学文件的实际输出,不是生成的“理想效果”。
小字和细线也要核对
用相同阅读器与相同缩放比例检查DEMO-042、84.70、0.00、中文和表格横线。本次渲染中这些内容仍可辨认,页数和页面尺寸相同;这只是本样本的视觉检查,不代表其他扫描件、图纸或低清照片也会通过。
两个文件都没有可提取文字层,因此本次没有“压缩后仍可搜索”的结论。电子文字页应另外检查搜索与复制。对于数字签名文件,保留签署原件并单独检查签名;重写文件成功不等于原签名仍有效。
接到上传流程之前
先写清业务允许的最大字节数和必须可读的区域。压缩结果需要同时通过大小与内容检查;若仍超过上传限制,返回具体提示,保留原件,不因为接口成功就标记为可交付。
可在ComPDF开发者平台用业务授权样本重复验证,再决定采用哪组参数。固定压缩比例不能替代本业务的文件检查。