免费在线PDF页码工具
通过自定义位置、格式和样式,为您PDF的每一页添加页码。无需上传,无需服务器,所有处理均在您的浏览器中本地完成。
支持PDF · 最大50 MB
使用方法
- 上传PDF: 拖放或选择您的PDF文件。工具会自动检测页数。
- 自定义: 选择位置(顶部/底部,左侧/中间/右侧)、页码格式、字号及其他选项。
- 添加页码: 点击“添加页码”以应用编号。处理在您的浏览器中立即完成。
- 下载: 编号后的PDF可以立即下载。
为什么添加页码?
页码对于专业文档、报告、手册、论文和大型演示至关重要。它们便于在交谈、引用或反馈中参考特定页面。使用此工具,您可以自定义编号以匹配您的文档风格,而无需复杂的软件。
功能
- 6 个位置: 将页码置于顶部或底部,左侧/中间/右侧对齐。
- 4 种格式: 简单数字、“第 X 页”、“X / N”或“第 X 页/共 N 页”。
- 自定义样式: 根据您的偏好调整字号和边距。
- 灵活起始: 从第 1 页或您选择的任何页面开始编号。
- 跳过第一页: 适用于标题页或封面。
- 隐私: 所有处理均在您的浏览器中本地进行。文件永不上传。
- 快速: 无需等待或排队,即时处理。
常见问题
我可以自定义页码格式吗?
是的。此工具提供四种格式:简单数字(1、2、3)、“第 1 页”、“1 / 10”和“第 1 页/共 10 页”。选择与您的文档风格相匹配的格式。
我可以跳过第一页的编号吗?
是的。勾选“跳过第一页”以保留您的标题页或封面不带页码。编号将从第 2 页开始。
支持多大的文件?
支持最大 50 MB 的PDF。处理速度取决于PDF大小和您设备的可用内存。
我的 PDF 会被上传到服务器吗?
不会。所有处理都通过 pdf-lib 在您的浏览器中本地完成。您的 PDF 绝不会离开您的设备,确保完全的隐私和安全。
我可以在手机上添加页码吗?
是的。此工具可在桌面、平板和移动浏览器上工作。只需选择您的PDF并自定义页码选项。
我可以撤消或删除页码吗?
一旦添加,页码就成为PDF的永久部分。如果您需要删除它们,请使用原始文件。我们建议您保留原始PDF的备份。
“PDF页码”到底是什么意思
“PDF页码”这个说法实际上涵盖了两种被PDF规范分别处理的不同概念,尽管终端用户很少加以区分。第一种是可见的页码文本,作为视觉注释绘制到页面上。每一页都会增加一段新内容,通常是位于页眉或页脚区域的一小段文本字符串,以选定的字体、大小和位置绘制。这段文本会像页面上的其他文本元素一样成为页面的一部分:它会被打印出来,会出现在屏幕截图里,可以被选中和复制,并出现在文档的任何渲染中。这正是本工具所做的操作。
第二种是PDF页面标签字典,在ISO 32000-2第12.4.2节中定义。页面标签属于元数据,而不是内容。它们位于文档目录字典里,以PageLabels数字树的形式,将每一个物理页面索引映射到一个标签字典,标签字典指定编号样式(十进制、罗马数字、字母)、前缀字符串和起始值。PDF阅读器使用这些标签来填充工具栏中的页码指示器(例如显示“第iv页,共250页”的框)以及页面导航器。它们不会出现在打印出的页面上。对于前置部分使用罗马数字(i、ii、iii)而正文从阿拉伯数字1重新开始的书籍和报告而言,标签很重要,因为它们能让阅读器的页码指示器与页面上可见的物理页码相对应。包括本工具在内的大多数面向消费者的工具写的是第一种。页面标签对无障碍访问以及让屏幕指示器与印刷页码相符都很有价值,但它们是对可见页码的补充,而不是替代。
本工具的内部工作原理
本工具使用pdf-lib,一个由Andrew Dillon(Hopding)及开源社区自2018年起维护的PDF规范的纯JavaScript实现。pdf-lib完全用JavaScript读取、解析和写入PDF,不使用WebAssembly,没有原生依赖,也没有任何服务器端处理。该库从jsDelivr CDN加载为一个380千字节的压缩脚本,首次访问后由浏览器缓存,并在本标签页内执行。
当您选择一个PDF时,浏览器的File API会直接将文件字节交给在JavaScript引擎中运行的pdf-lib。该库会将文档结构解析为一棵在内存中的PDF对象树(目录、页面树、内容流、字体资源、元数据),然后对所选范围内的每一页定位其页面内容流,向其中追加一段新的文本绘制运算符序列,并更新交叉引用表以反映新的流长度。这些文本绘制运算符遵循PDF规范中关于内容流的规定:BT开始一个文本对象,Tf选择字体和大小,Td将文本光标定位到选定坐标,Tj绘制字形字符串,ET关闭文本对象。当每一页都更新完毕后,pdf-lib将修改后的文档序列化回字节数组,该字节数组成为一个Blob,再通过合成锚点点击的方式提供下载。整个操作过程中不会触发任何网络请求。
用于编号的字体是Helvetica,它是ISO 32000-2附录D中定义的Standard 14字体之一。Standard字体保证能在所有合规PDF阅读器中渲染,无需嵌入字体程序,因为阅读器必须自带一个度量兼容的替代字体。这能让输出文件保持较小(无需嵌入字体子集),并使渲染快速。代价是Standard 14只涵盖基本拉丁字符;对于使用非拉丁文字的语言,需要嵌入自定义字体。任何使用西方阿拉伯数字的语言(绝大多数都是)所写的数字页码都能毫无困难地渲染。
PDF坐标系统
PDF使用一种对习惯于网页或屏幕图形的人而言并不寻常的坐标系定位文本:原点(0, 0)位于页面的左下角,x轴向右递增,y轴向上递增。一个单位等于1/72英寸,即传统印刷术的“点”。一张标准的US Letter页面是612乘792用户单位(8.5乘11英寸)。一张标准的A4页面是595.276乘841.890用户单位(210乘297毫米)。本工具中的边距输入以点为单位,因此30的边距意味着距离边缘30 / 72 = 0.417英寸。
六种位置预设按如下方式转换为坐标:“底部居中”将文本基线置于距离页面底部“边距”单位之上并水平居中。“顶部右侧”将其置于距离底部“页面高度减边距”单位之上,文本右边缘距离页面右缘“边距”单位。本工具按每一页分别计算宽度和高度(因为PDF可以在单个文档中混合多种页面尺寸,这在归档扫描件中很常见),并在每一页自己的坐标空间内定位文本。这就是为什么同一文档中不同大小的页面都能在正确的相对位置上获得一个页码,而不是全部对齐到同一个绝对坐标。
几个世纪以来的页码实践
我们今天所熟知的页码的历史比大多数人想象的要久远。最早的欧洲印刷书籍,从1450年代起,通常没有页码,而是依靠在折叠书页的拼帖上做签字标记(字母)来帮助装订工人定位。页码在16世纪零星出现,到17世纪成为常态,到18世纪晚期已经普及。现存最早的带页码的书一般认为是Werner Rolewinck的《Fasciculus temporum》,由Arnold ther Hoernen于1474年在科隆印制。
印刷传统留下的约定至今仍适用于PDF。前置部分(扉页、版权页、献词页、目录、序言)使用小写罗马数字:i、ii、iii、iv、v。扉页被计为第i页,但不显示页码。正文从阿拉伯数字1重新开始。后置部分(注释、术语表、参考文献、索引)通常沿用正文的阿拉伯数字序列。这是《Chicago Manual of Style》和Turabian的规则,至今仍为大学论文、学术专著和大多数非虚构类大众读物所遵循。MLA风格的论文从第1页起使用连续的阿拉伯数字。APA风格的论文从扉页开始编号,并将扉页作为第1页。选择取决于文档类型,而不是个人偏好。
本工具产生一条单一的连续阿拉伯数字序列,适用于MLA、APA、商务报告、技术手册以及任何单一区段的文档。对于Chicago风格的论文,若需要前置部分和正文分别编号,标准流程是用免费 PDF 拆分工具工具在正文边界处将文档拆开,分别从合适的起始值给每一部分编号,再用免费在线 PDF 合并工具将两部分已编号的内容合并回去。
推动PDF页码使用的真实工作流程
- 法律举证与Bates编号。 “Bates编号”是分配给在诉讼举证阶段提交的每一份文档的每一页的唯一标识(通常是前缀加上补零的计数器,例如ACME000142)。这个名字来源于Bates Manufacturing公司生产的自动递增橡皮章,律师们在电子文档之前使用它来手工给文档逐页编号。Bates编号让日后在诉状、证言或证据清单中的任何引用都能在数千页的举证中明确指向某一页。本工具处理基本的页码场景;要做真正跨多个PDF前缀连续的Bates编号,最好选择支持批处理的桌面工具(Adobe Acrobat Pro或专门的举证软件)。
- 学位论文与毕业论文。 研究生院要求连续的页码编号以便装订和图书馆编目。典型的模式是前置部分用罗马数字,正文用阿拉伯数字,方法是对每一节分别编号然后合并。在英语国家的所有获认证研究生项目以及大多数其他国家的项目中都有此要求。
- 法院诉状与简短陈述。 美国大多数联邦法院和州法院都要求所有提交的文件都有页码,往往还有特定的位置要求(按管辖区不同,可能是页脚居中、页脚右侧或页眉右侧)。页数统计驱动字数限制的检查和页数限制的规则(例如,美国最高法院对调卷令申请的50页限制)。
- 商务报告与方案建议书。 长篇文档(年度报告、招标书回应、战略规划、审计报告)需要页码,以便会议参与者可以实时引用具体章节。标准位置是底部居中或底部右侧,报告的章节名称放在对侧的页眉中。
- 技术手册与教学材料。 用户手册、培训指南和认证课程使用页码作为索引和目录的导航主干。正文中的交叉引用(“安全图见第47页”)依赖于印刷上的页码与读者手中页面上看到的相一致。
- 会议论文集与编辑著作。 论文集中的每一篇论文都在整本书中连续编页,页码范围引用(“第142-159页”)会直接进入参考文献和引文索引。编者在汇总各篇论文之后再施加全局页码。
- 食谱、乐谱与参考书。 任何以页码为索引供人导航的内容。页码是印刷物用户界面的一部分。
常见陷阱及其含义
- 页码在某些页面上的位置不对。 最常见的原因是源文档包含不同大小的页面,而您选择的边距适合标准页面尺寸却不适合异常尺寸。本工具在每一页自己的坐标空间内定位,因此相对位置是一致的,但30点的边距在4×6英寸的页面上看起来要比在US Letter页面上大得多。对于混合尺寸的文档,可以考虑先将页面尺寸归一化,或在更高级的工具中使用按百分比的边距。
- 页码落在已有内容上面。 您选择的位置与文档自身的页脚或页眉重叠。解决方法是选择不同的位置(原文有底部页脚就选顶部居中,有顶部页眉就选底部居中),加大边距把页码推向边缘外侧,或减小字号。对于自身页眉密集且带页码的文档(例如带行号的法律诉状),中部上方或中部下方通常有空闲位置。
- 由于前置部分的存在,正文第一页的页码不对。 本工具从您所选的起始值开始(默认1)为每一页编号。如果您的文档有需要单独编号的前置部分,工作流程是:在正文边界处拆分文档,按需要使用罗马数字或阿拉伯数字起始值给前置部分编号,正文从1开始编号,然后将已编号的部分合并回去。这与Adobe Acrobat Pro和Microsoft Word处理多区段文档的方式一致。
- PDF已加密,工具报错。 未先提供密码的加密PDF无法修改。工作流程是:先用免费在线 PDF 解锁工具(同样在浏览器内运行)解锁PDF,在本工具中添加页码,然后可选地用PDF 密码保护工具重新施加保护。被编号的是解锁后的中间文件;最终的受保护输出保留新的页码和新的密码。
- PDF经过数字签名,编号后签名变为无效。 这是预期行为。添加页码会重写文档字节,按定义会使附加在原始字节序列上的任何加密签名失效。已签名的PDF应在签名之前编号,而不是签名之后,或者如果签名流程允许就在编号之后重新签名。如果一份已签名的PDF必须带可见页码流转,标准做法是先(在未签名状态下)编号,再像新文档一样走签名流程。
- 纯图像扫描PDF获得了页码,但页面本身底下并没有文字。 这是预期行为。本工具绘制的页码是真正的PDF文本,可见、可选中并可复制粘贴。扫描页的内容仍然是图像,仍然不可检索。如果您需要整篇文档(包括扫描内容)的文字都可检索,请先用桌面OCR工具对扫描页运行OCR,然后再对OCR处理后的输出进行编号。
- 旋转过的页面:页码与页面内容形成一个角度。 PDF页面的页字典中有一个
/Rotate条目,告诉阅读器以0、90、180或270度旋转显示该页。本工具在页面底层的坐标系中绘制页码,因此一个/Rotate 90(侧向显示)的页面将显示出相对于所见内容旋转的页码。解决方法是先用免费在线 PDF 页面旋转工具永久应用旋转,再对旋转后的输出进行编号。永久旋转过的页面没有/Rotate条目,编号会自然对齐。
仅浏览器与云端编号的比较
云端PDF页码服务(Smallpdf、ILovePDF、PDF24 web、Adobe Acrobat Online、Sejda)会将您的PDF上传到它们的服务器,使用其服务器端库添加页码,然后将编号后的副本提供下载。隐私上的影响与普通文件上传在一点上有重要差别:被编号的文档往往是工作成果、合同、财务报告或法律证据,恰恰是机构最不愿意让它离开受控环境的那类文件。主要运营商会发布隐私政策,承诺数小时内删除并在传输中使用TLS,他们也有强烈的商业理由去遵守这些承诺,但是“数小时内删除”并不等于“从未见过”。
本工具不上传任何东西。pdf-lib库在您的浏览器标签页中运行,通过File API接收文件字节,并将编号后的字节返回到同一个标签页。您可以验证这一点:在点击“添加页码”之前打开浏览器开发者工具的“网络”面板,执行操作,观察没有任何带有您文件内容的请求被发出。代价在于功能范围。云服务通常提供带前缀计数器Bates支持的多PDF批量编号、编号前的服务器端OCR以及与它们其他PDF端点的集成。本工具一次只对一个PDF进行编号,没有OCR,也没有真正跨文件的Bates。对于单文档工作流(这覆盖了绝大多数消费类使用),浏览器工具更简单,首次加载后更快(无上传、无服务器排队),并且在隐私上有实质意义的更佳表现。对于多PDF的Bates举证生产,桌面工具(Acrobat Pro)或专门的举证服务才是正确答案。
更多常见问题
可见页码与PDF页面标签有什么区别?
可见页码是真正绘制到每一页内容流上的文本,会打印、可选中并出现在截图中。PDF页面标签是存储在文档目录的PageLabels数字树中的元数据;阅读器用它来填充工具栏中的页码指示部件,但它不会出现在打印的页面上。本工具写的是可见页码,这是99%的用户所理解的“添加页码”的含义,也是用于打印、分发和引用的正确答案。页面标签对无障碍访问很有价值(屏幕阅读器可以朗读标签化的编号而不是物理页序号),但它们是附加的,不是替代。
如何为前置部分使用罗马数字、为正文使用阿拉伯数字?
用免费 PDF 拆分工具工具在正文边界处拆分文档,单独按罗马数字约定给前置部分编号,正文从阿拉伯数字1开始编号,再用免费在线 PDF 合并工具把两部分已编号的内容合并起来。本工具按您选择的格式生成一条单一的连续序列,所以多区段编号需要这种“拆-合”工作流。这正是《Chicago Manual of Style》和Turabian对学位论文的标准做法,也是Microsoft Word和Adobe Acrobat在设置带重启编号的“分节符”时背后所做的事情。
什么是Bates编号?本工具支持吗?
Bates编号是法律举证中的一种做法:给每份文档的每一页分配一个唯一标识(通常是前缀加补零计数器,例如ACME000142),以便日后在诉状或证言中的任何引用都能明确指向某一页。这个名字来源于电子文档时代之前使用的Bates Manufacturing公司的自动递增橡皮章。本工具支持页码方面(从任意数字开始、连续计数、多种格式模板),但不支持真正Bates编号所要求的跨多文档前缀连续。对于跨多个PDF、跨数千页、使用共同前缀的诉讼举证生产,Adobe Acrobat Pro是标准选择。
本工具使用什么字体,我能更改吗?
Helvetica,ISO 32000-2附录D中Standard 14字体之一。Standard字体保证能在每一个合规的PDF阅读器中无需嵌入字体程序就能渲染,这让输出文件保持小巧,渲染普适。本工具将字号(10、12、14、16点)作为可定制项暴露给用户;字体本身固定为Helvetica以保证兼容性。对于因品牌原因需要特定字体的文档,标准流程是先在本工具中编号,再用支持完整字体功能的桌面工具重新印盖页码。
为什么输出的PDF比输入稍大?
pdf-lib会向每一页的内容流追加新的文本绘制运算符,并添加对Helvetica字体的引用。每页新增的内容很小(通常每页几百字节),字体引用则对整个文档只添加一次。新增的总大小通常每页不到5千字节,对于像“1”或“Page 1”这种短编号往往不到1千字节。pdf-lib在添加新内容时不会重新压缩已有的流,因此文档其余部分按字节保持不变。如果输出大小很重要,可以将带页码的PDF通过免费在线 PDF 压缩工具重新编码,使用最新的压缩方法。
是否有用于批处理的桌面或命令行等价工具?
有好几个。pdf-lib自身在Node.js下产生与本工具完全相同的输出,并能在一次调用中处理多个文件。pdftk(PDF Toolkit)支持印章工作流:在另外生成一个含页码的印章PDF之后,pdftk input.pdf stamp stamp.pdf output output.pdf。Python的reportlab或PyPDF2可以产生同类输出,并对字体、位置、前缀和格式提供完整的编程控制。Adobe Acrobat Pro的批处理(“Action Wizard”)是已有Acrobat订阅且需要完整Bates编号功能的用户的GUI选择。