免费在线PDF页码工具

通过自定义位置、格式和样式,为您PDF的每一页添加页码。无需上传,无需服务器,所有处理均在您的浏览器中本地完成。

您的文件永不离开您的设备
将PDF文件拖到此处 或点击浏览

支持PDF · 最大50 MB

文件: -
页数: -

使用方法

  1. 上传PDF: 拖放或选择您的PDF文件。工具会自动检测页数。
  2. 自定义: 选择位置(顶部/底部,左侧/中间/右侧)、页码格式、字号及其他选项。
  3. 添加页码: 点击“添加页码”以应用编号。处理在您的浏览器中立即完成。
  4. 下载: 编号后的PDF可以立即下载。

为什么添加页码?

页码对于专业文档、报告、手册、论文和大型演示至关重要。它们便于在交谈、引用或反馈中参考特定页面。使用此工具,您可以自定义编号以匹配您的文档风格,而无需复杂的软件。

功能

常见问题

我可以自定义页码格式吗?

是的。此工具提供四种格式:简单数字(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页码使用的真实工作流程

常见陷阱及其含义

仅浏览器与云端编号的比较

云端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选择。

相关工具