会读出:总页数、页面尺寸与横竖、旋转状态、PDF 版本、是否加密、有无文字层、字体数、图片数、标题与作者。
选好 PDF,一键把它的底细全看清楚。
看懂这些信息,能省掉很多瞎折腾。
| 项目 | 看到什么 | 说明什么 |
|---|---|---|
| 总页数 | 文档一共几页 | 打印成本、分页提交都看它 |
| 页面尺寸 | 如 210 × 297 mm | A4 是 210×297,A3 是 297×420 |
| 页面旋转 | 0° / 90° / 180° / 270° | 非 0° 说明页面被标记过旋转 |
| 文字层 | 有 / 无 | 无 = 扫描件,提不出文字 |
| 字体数量 | 抽样页内的字体种数 | 字体多说明版式复杂,转版易乱 |
| 图片数量 | 抽样页内的图片张数 | 图片多 = 体积大,压缩空间也大 |
| 是否加密 | 是 / 否 | 是则编辑、打印可能受限 |
| 生成程序 | 如 Word / WPS / LaTeX | 可判断来源与大致可靠性 |
拿到报告后,通常是为了回答这三个问题。
| 问题 | 看哪一项 | 结论 |
|---|---|---|
| 能不能提取文字? | 文字层 / 抽样字数 | 有文字层 → 用「PDF 提取文字」 |
| 为什么这么大? | 图片数量 + 页数 | 图片多 → 压图后重新转 PDF |
| 能不能直接打印? | 页面尺寸 + 旋转 | 多尺寸/带旋转 → 先统一再打印 |
| 会泄露隐私吗? | 作者 / 生成程序 | 有值 → 用「PDF 元数据编辑」清空 |
⚠️ 免责声明:本工具只做只读检测,不会修改你的 PDF。
字体数与图片数来自前 8 页的抽样统计,不是全量精确值,仅供参考;「无文字层」是抽样判断,个别页面可能仍有文字,请以实际能否选中为准。
带密码加密的 PDF 可能无法完成检测。
所有处理均在你的浏览器本地完成,文件不会上传到任何服务器,本站也不留存任何副本。
这份 PDF 到底几页?是不是扫描件?为什么这么大?谁做的、用什么软件做的?尺寸是 A4 还是别的、有没有被旋转过?——想知道一份 PDF 的底细,用完整版 PDF 编辑器太重,在线站点又要求你把文件传上去。
这个工具两步搞定:选文件 → 看报告,还能一键复制整份报告发给同事。
它具体怎么做的?
① 版本号:读文件头部的 %PDF-x.y 标记,直接得到 PDF 规范版本;
② 结构与页数:用 pdf-lib 载入,读出总页数,并逐页读取 getSize()(得到 pt 尺寸,换算成 mm)与 getRotation(),把相同尺寸的页归组计数、把旋转角度归组计数;
③ 元数据:读出标题、作者、主题、关键词、创建程序、生成程序六项;
④ 是否加密:再尝试一次不带 ignoreEncryption 的加载,被拒绝就说明需要密码或有权限限制;
⑤ 文字层判定:用 pdf.js 抽样前 8 页,调用 getTextContent() 统计非空字符数,平均每页 ≥ 10 字判定为有文字层,否则提示疑为扫描件;
⑥ 字体与图片:同样在抽样页内统计文本项里的 fontName 去重数量,以及绘制指令中的图片绘制操作次数;
⑦ 出报告:15 项结果列成清单,并给出针对性提示(无文字层、多尺寸、已加密等),可一键复制。
几个实战建议:
· 想提取文字先来这里:看到「无文字层」就别白费劲了,需要 OCR;
· 文件太大:看图片数量,多就走「PDF 转图片 → 压图 → 图片转 PDF」;
· 要打印:看页面尺寸和旋转,多尺寸先统一;
· 要外发:看作者和生成程序,有隐私就用「PDF 元数据编辑」清空。
最后一句:整个过程都在你自己浏览器里完成,文件不会上传到任何服务器。
怎么处理:
① 读文件头 %PDF-x.y 得版本;
② pdf-lib 载入得总页数,逐页 getSize()(pt → mm)与 getRotation(),按尺寸与角度分别归组计数;
③ 读六项元数据;
④ 再以不允许忽略加密的方式加载一次,被拒即判定为加密/受限;
⑤ pdf.js 抽样前 8 页:getTextContent() 统计字符数判断文字层,收集 fontName 得字体数,扫描绘制指令中的图片操作得图片数;
⑥ 输出 15 项清单 + 针对性提示,可复制报告。
它不做:不修改文件(纯只读)、不做全量精确统计(字体/图片为抽样)、不做 OCR、不解密。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!