ARTICLE · 1034352
PDF发出去就被说有乱码、复制乱、读屏读不懂?把AI PDF工作流拆成五步

连续学习:前几篇我们在“基础知识与原理”里沿着Java并发与JVM往下走;这一篇换一个几乎所有人都会遇到、却极少系统检查的交付问题——把文档变成PDF发出去。技术主题不同,方法一样:先定义可验证的检查点,再看现象。
从真实问题开始
一份报告导出成PDF发给对方,最怕收到的不是“排版不好看”,而是三句话:“我这边打开是乱码”“我复制一段粘贴到邮件里顺序全乱了”“系统提示这份文件无法检索”。而在你自己的电脑上,它看起来完全正常:页数对、字体对、表格也在。
更麻烦的是,这三类问题在发出前几乎不会自己暴露。它们不是生成时的报错,而是交付时才被对方环境发现的质量缺陷。
一句话结论
PDF的问题大多不出在“生成”,而是没人检查它在别人那里能不能读、能不能复制、能不能被读屏软件念出来。把交付拆成五步、让AI承担其中可自动化的检查,返工率会明显下降。
适用对象与准备材料
适用对象:需要把报告、方案、简历、合同、说明书、发票扫描件发给外部的人,以及需要给系统上传可检索文档的人。
一份源文件:Word、Markdown、表格或代码生成的文档。 一份真实的PDF样本,最好就是上一版被对方挑出问题的那一份。 能读文件、能渲染页面并逐页观察的AI工具,例如Codex。 可选:命令行检查工具pdfinfo、pdftoppm与qpdf,用于结构层面的客观核对。
核心方法或原理
先把三个容易混为一谈的东西分开:页面视觉、文本层、逻辑结构。页面视觉决定“看起来对不对”;文本层决定“能不能复制和检索”;逻辑结构决定“读屏软件按什么顺序念”。三者在同一个PDF里互不绑定,所以才会出现“看着一样、用起来完全不同”。
PDF本身是一份打印描述文件,页面内容是内容流、字体与资源的组合,并不天然携带段落、表格这类语义〔3〕。逻辑结构需要靠“标记过的PDF”(tagged PDF)承载:文档保存为tagged PDF时才创建逻辑结构,而阅读顺序主要由文档元素的标签顺序决定〔1〕。
理解这一点,AI在交付环节的位置就清楚了:把重复、可观察、可量化的检查交给AI(渲染每页、抽取文字、比对清单),把口径判断和合规结论留给人。
完整操作步骤:PDF交付五步
第一步 写清交付约定
在动手排版之前先写三行:谁读、在哪读、要不要二次编辑或检索。给同事内部看的草稿、给客户签字确认的合同、要上传审批系统的报告,这三者的验收标准完全不同。把约定落在纸面上,后面的检查才有依据。
第二步 选对生成通道
优先走能保留文本层的导出通道:文字处理软件导出、Markdown排版工具导出、代码生成。避免用“截图拼页”的方式产出要交付的文档:那样虽然有文本层之外的一切外观,却没有可复制、可检索、可读屏的基础。文字型文件还要确认字体已嵌入,否则对方缺少同款字体时就会替换字形。
第三步 检查结构与标记
这一步是纯客观核对,最适合交给AI或脚本:页数、页面尺寸、是否加密、是否标记为tagged、文件体积。qpdf的官方文档说明,--check会检查文件结构以及加密、线性化和流数据编码,退出状态为0表示PDF语法正确〔2〕。让AI把这些字段跑一遍并列表输出,比自己肉眼翻页可靠得多。
第四步 核对阅读顺序与可访问性
多栏排版、跨页表格、图片里的文字、页眉页脚,是阅读顺序最容易出错的地方。W3C的可访问性技术要求写得很直白:如果没有正确标记,屏幕阅读软件会按错误的顺序朗读内容,双栏文档尤其明显〔1〕。图片需要替代文本,表格需要表头关联,链接需要可读的文字而不是“点击这里”。
第五步 逐页渲染复核
最后一步是把PDF每页渲染成图片,一页一页看:是否缺页、是否截断、是否重叠、数字与单位是否错位、公式与代码是否折行。Poppler项目提供的命令行工具可以把PDF页面渲染成图像,便于稳定复核版式〔4〕。这一步AI可以真正省时间:让它先看一遍并列出可疑页,人只需要复核它标出来的部分。
最小可验证示例
为了验证“看起来一样、用起来不同”,我生成了两份对照样本:一份是带文本层的中文PDF,另一份把同一页渲染成图片后包进PDF。肉眼几乎无法区分,但检查结果完全不同。
python3 pdf_check_demo.py# 实测输出(节选)== demo-text-layer.pdf ==抽取字符数:57抽取内容:'PDF交付检查示例:这一行文字用来验证文本层能否被复制和检索。'Pages: 1 Page size: 595.276 x 841.89 pts (A4)Tagged: no Encrypted: no== demo-image-only.pdf ==抽取字符数:0抽取内容:''Pages: 1 Page size: 595.276 x 841.89 pts (A4)Tagged: no Encrypted: no
三个可以直接观察到的结论:第一,图片型样本抽不出任何文字(0字符),所以它不能被复制、不能被全文检索,读屏软件也只能跳过;第二,两份文件在pdfinfo里都显示 Tagged: no,说明我们平时生成的“正常PDF”其实也没有携带逻辑结构,多栏或表格文档就有朗读顺序错乱的风险;第三,页数与页面尺寸完全相同,验证了“视觉一致”与“可访问性一致”是两件事。
本示例在macOS上实际运行,运行环境为Python 3.12、reportlab、pypdf,页面渲染使用Poppler的pdftoppm;样本文件与脚本保存在当日工作目录,命令与输出均为实测结果。
常见失败及调整方式
中文变方块或乱码:字体未嵌入或缺少字形。换导出通道,导出时勾选嵌入字体或子集,必要时换用常见中文字体重新导出。 复制出来顺序乱、双栏内容串行:缺少标记结构。用支持tagged PDF的导出方式重新生成;结构问题严重时,把双栏改成单栏更稳。 表格跨页后第二页没有表头:生成时设置重复表头,并在复核时专门看第2页首行。 扫描件无法检索:需要加文本层(OCR),但OCR一定存在错误率,数字、专有名词和金额必须人工抽查。 对方打不开或提示版本不支持:先用pdfinfo看PDF版本与加密状态,再决定降级导出或取消加密。 手机端查看错位:固定页面尺寸、保留安全边距,避免超宽表格与过小字号。
事实与结果检查清单
页数与源文档一致,页面尺寸符合交付目标(A4或信纸),非必要不加密。 抽取出的正文前200字与源文一致,标点、数字、中英文混排没有错位。 逐页渲染检查:无缺字符、无截断、无重叠、无空白页。 长链接与代码块没有被折行破坏,复制后仍是完整字符串。 文件名含日期与版本,避免出现“最终版2-真的最终版”。
适用与不适用边界
适用:日常办公与对外交付中的可读性、可复制性、可检索性与版式复核。
需要专业流程:正式归档(PDF/A等长期保存格式)、法律签署、印刷出版(色彩与出血)、无障碍合规审计——这些需要专业工具与人工评估,AI检查只能发现问题、给出建议,不能出具合规结论。此外,扫描件的OCR有固有错误率,AI不能替代人工核验关键数字。
对读者意味着什么
第一,交付质量是可检查的清单问题,不是审美问题:把上面五步做成固定流程,第一次可能多花十分钟,之后每次都能省下返工沟通。第二,AI在这个环节的价值不是“帮你写”,而是“帮你查”——它能不知疲倦地渲染每一页、抽取文字、对照清单,而你需要判断的是口径、责任与合规。第三,给文档加上结构和标签,收益不只是无障碍:检索、留档、后续抽取复用都会更容易。
今日15至20分钟AI练习
目标:把一份真实PDF从“能看”检查到“能读、能复制、能被检索”。
输入材料:一份你最近真实发出去的PDF,以及它的源文件。
可直接复制的提示词:
请按PDF交付五步法检查我提供的这份PDF,不要修改原文件:1)先用pdfinfo报告页数、页面尺寸、是否加密、是否标记为Tagged;2)把每一页渲染成PNG并逐页描述是否存在乱码、截断、重叠、缺页;3)抽取文本层并给出前200字,指出与源文件可能不一致的地方;4)列出必须由我人工确认的3项,并说明理由;5)最后输出一张问题清单:问题、影响、修复建议、修复后如何复验。
预期结果:一份问题清单,包含结构字段、逐页观察、文字抽取结果和3项人工确认点。
人工检查点:亲自复制一段正文粘贴到记事本,看顺序是否正确;打开读屏或朗读功能听前30秒;核对清单里的数字与单位。
结果不好时怎么调整:如果AI只给出“看起来没问题”的笼统答复,把要求改成可观察项(页数、字符数、异常所在页码);如果抽取文字为空,先判断这是不是扫描件,再决定是否走OCR;如果PDF本身没有标记结构,不要指望靠检查修好,回到源文件重新导出。
资料来源与引用
〔1〕W3C Web Accessibility Initiative
《PDF3: Ensuring correct tab and reading order in PDF documents》|访问日期:2026-09-18
原始链接:https://www.w3.org/WAI/WCAG21/Techniques/pdf/PDF3
〔2〕qpdf 项目官方文档
《Running qpdf》|qpdf 12.4.1 documentation,访问日期:2026-09-18
原始链接:https://qpdf.readthedocs.io/en/stable/cli.html
〔3〕Adobe
《PDF Reference, Sixth Edition: Adobe Portable Document Format Version 1.7》|访问日期:2026-09-18
原始链接:https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/pdfreference1.7old.pdf
〔4〕Poppler
《Poppler PDF Rendering Library 官方站点》|访问日期:2026-09-18
原始链接:https://poppler.freedesktop.org/
本公众号由 AI 完成公开资料收集与信息整理。
本文不构成投资、法律或商业决策建议。