免费在线 PDF 页面旋转

将 PDF 中的单个页面或所有页面旋转 90°、180° 或 270°。即时结果,无需上传到任何服务器。

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

支持 PDF 文件 · 最大 100 MB

使用方法

  1. 在上方选择或拖放 PDF 文件。
  2. 使用批量控件一次旋转所有页面,或单独旋转每一页。
  3. 页面在 您的浏览器中 旋转 · 不上传到任何服务器。
  4. 立即下载旋转后的 PDF。

什么时候需要旋转 PDF?

PDF 页面有时方向是错的,可能是侧着扫描进去的、上传时上下颠倒、或者来自一份混合方向的源文档却有一两页旋转错了。修正方向对于文档管理、归档、OCR 流水线以及任何要给人阅读的场景都很重要。本工具可在一次操作中纠正单个页面或整份文档的方向,无需安装软件,也不会把文件发送到任何地方。

旋转选项

常见问题

我可以单独旋转某些页面吗?

可以。列表中的每一页都有自己的旋转控件。您可以独立旋转页面,或使用批量控件一次将相同的旋转应用于所有页面。

有文件大小限制吗?

PDF 文件最大可达 100 MB。由于处理在浏览器中进行,非常大的文件可能会根据您的设备花费一些时间。

我的 PDF 会被上传到服务器吗?

不会。所有旋转都在您的浏览器中本地进行。您的 PDF 永远不会离开设备,完全私密和安全。

旋转会影响 PDF 质量吗?

不会。旋转是一种元数据操作,不会重新编码或压缩 PDF。您的文档将保持 100% 的原始质量。

我可以撤销旋转吗?

可以。您可以通过选择相反方向将页面旋转回去。如果您已下载并希望重新开始,只需重新上传即可。

用 PDF 的术语来说,旋转是什么

PDF 在每一页的字典里用一个整数来存储旋转,键名为 /Rotate。合法值是 0、90、180 和 270(度,顺时针),该条目告诉查看器或打印机在显示或打印时应该把页面顺时针旋转多少度。底层的内容流,也就是构成页面的文本绘制和图像绘制运算符,在旋转操作中从来不会被改动。这就是全部机制。PDF 旋转是元数据,不是内容。

由此带来的结果是,旋转在存储上基本是免费的。输出文件与输入文件逐字节相同,只有受影响的页面字典里的 /Rotate 值和库在序列化时写出的新的交叉引用表条目不一样。100 MB 的扫描件旋转后还是 100 MB 的输出;100 KB 的文本 PDF 旋转后还是 100 KB 的输出。没有重新压缩,没有栅格化,也不可能发生字体替换。当源文件和输出在同一个查看器以新的旋转角度渲染时,可见内容在像素层面上完全一致。

/Rotate 的小史

/Rotate 条目自 1999 年 PDF 1.3 版本起就是 PDF 规范的一部分。更早的 PDF 版本允许页面对象上更通用的 /Matrix 条目来指定任意仿射变换,但允许指定非正交旋转造成了互操作性问题:不同的查看器对倾斜旋转的处理不同,打印输出有时也与屏幕显示对不上。PDF 1.3 把契约收窄到四个正交旋转(0、90、180、270 度),/Rotate 成为指定页面方向的通用机制。

2008 年的 ISO 32000-1 和 2020 年的 ISO 32000-2 都原封不动地保留了相同的定义。正交性约束在实践中从来不是限制。真正需要旋转的工作流程,扫描仪校正、手机相机拍摄、传真方向、混合方向文档,都是四分之一圈的旋转。页面的非正交旋转(比如倾斜 45 度的水印)更适合用 Form XObject 把旋转后的内容画进去,这是 PDF 规范仍然为特殊场景所允许的另一种机制。

旋转的实际过程

本工具的旋转通过 pdf-lib 完成,这正是本站合并、拆分、压缩工具所使用的同一个 JavaScript 库。第一步,源 PDF 通过标准 File API 读入浏览器标签页。第二步,pdf-lib 解析交叉引用表并暴露出页面对象列表。第三步,对于用户选定的每一页,工具读取当前旋转值,按模 360 计算新的总值,并把结果写入页面字典的 /Rotate 条目。第四步,文档通过 PDFDocument.save() 序列化为字节,并作为下载交付给磁盘。

批量模式在一次操作中给每一页应用相同的旋转。逐页模式给特定页面应用不同的旋转。两种模式相对于文件大小基本是常数时间:重活是解析和序列化交叉引用表,而不是遍历页面本身。一份 500 页的 PDF 旋转所用的实际时间与 5 页的 PDF 差不多,差别在于读取和写入更大文件的 I/O 成本。旋转的算术本身每页只要几微秒。

为什么旋转后的尺寸在其他工具里看起来很奇怪

每个 PDF 页面带有一组小型几何矩形:MediaBox(物理纸张矩形)、CropBox(可见区域,默认等于 MediaBox)以及印刷生产用的矩形(BleedBox、TrimBox、ArtBox)。/Rotate 条目不会修改其中任何一个矩形。这些矩形是在未旋转的用户空间中定义的;查看器在渲染时把 /Rotate 当作变换矩阵应用,按指定角度同时旋转页面内容和矩形。实际后果:一张美式 letter 纵向页面(612 乘 792 点)若带 /Rotate 90,在 PDF 源文件中 MediaBox 仍然是 (0, 0, 612, 792),但查看器把它显示为 792 乘 612 的横向页面。

读取 PDF 尺寸的工具需要把 MediaBox 与 /Rotate 值结合起来才能得到屏幕上的方向。忽略 /Rotate 的工具会报错尺寸,这就是为什么某些 PDF 转图像的转换器或页面缩略图生成器偶尔会输出侧倒的图。如果你把一份旋转后的 PDF 交给下游工具,而输出却是侧的,修复办法是把旋转扁平化到内容流里,把方向烘焙进去,这样即便对旋转视而不见的工具也能正确处理。在线 PDF 展平,免费 工具正是做这件事。

推动旋转使用的真实工作流程

常见陷阱与变通办法

为什么旋转后的文件大小不变

输出 PDF 与输入相比总共只多出几十个字节:改动过的 /Rotate 整数,加上 pdf-lib 在序列化已修改文档时写出的新的交叉引用表条目。其余一切,字体、图像、矢量图形、内容流运算符,都是从输入按字节原样写入的。100 MB 的输入产生约 100 MB 的输出。这就是基于元数据的旋转在运行上的优势:这是存储成本最低的 PDF 变换,也是唯一可以完全可逆的 PDF 操作(旋转 90,再旋转 270,你就回到了原始文件,只是交叉引用表的顺序略有变化)。

仅浏览器旋转 vs 云端旋转

占据搜索结果顶部的云端 PDF 旋转工具(Smallpdf、ILovePDF、Adobe Acrobat Online、PDF24 的 Web 应用、Sejda、PDF2Go)都会把你的源 PDF 上传到它们的服务器,在服务端完成旋转,然后把旋转后的输出作为下载交付给你。它们的隐私政策声明上传的文件会在几小时内删除,但文件已经过运营商的网络,在处理期间存在于其磁盘上,并经过运营商为了滥用检测而保留的各种日志。免费档通常会限制每天的操作次数;付费档则取消限制。

本工具不上传。你的 PDF 通过标准 File API 读入浏览器标签页,由 pdf-lib 在同一个标签页中解析,输出再通过标准下载 API 写回磁盘。一次旋转期间唯一的网络流量是第一次打开页面时从 CDN 一次性加载 pdf-lib。你可以自己验证:把浏览器的开发者工具切到「网络」标签页,运行一次旋转,看是否有任何带着你文件内容的请求发出。隐私保证的代价是浏览器内存:非常大的 PDF(通常在手机上超过 100 MB,在桌面上几百 MB)可能会用尽 JavaScript 堆。对装得下的文件,输出与云端工具产出的可以互换;对装不下的文件,云端工具有优势。

更多常见问题

旋转是「永久的」吗?

「永久」并不是用户通常想表达的那个意思。一旦 /Rotate 条目被写入并且文件被保存,每一个合规的 PDF 查看器每一次都会以新方向显示该页面。可见效果是永久的。底层内容流没有变,这对几乎所有工作流来说都是正确的行为:PDF 保持小巧,旋转是精确的,以后的工具也能在没有质量损失的情况下撤销它。如果用户想要那种把方向烘焙进内容流的「永久」旋转(以便对旋转视而不见的工具也能看到新方向),应该在旋转后再用 PDF Flatten 工具。

我能按 90 度以外的角度旋转吗?

不能。PDF 规范只允许 /Rotate 条目取 90 的倍数。任意角度旋转需要通过另一种机制重新渲染页面内容,这样会产生更大且有可测量质量损失的文件。提供「任意角度」旋转的工具会先把页面栅格化,旋转栅格图,再把它作为图像输出;输出是另一类 PDF(仅图像),会失去任何可选择的文本或矢量图形。如果是真正的纠偏需求,正确做法是重新扫描并对齐,或使用结合了栅格化与倾斜检测的桌面工具。

我旋转一份已签名的 PDF 时,数字签名会怎样?

签名会被作废。数字签名是对文件确定字节范围的密码学哈希;旋转页面会改字典条目,从而改字节,从而破坏哈希。没有办法让签名穿过旋转还保持有效。输出 PDF 仍然能正确显示内容,但 Acrobat 或任何合规查看器的签名面板会显示「签名无效」或「文档自签署以来已被修改」。如果文档必须保持已签状态,旋转必须发生在应用签名之前。这是密码学上正确的行为,不是工具的限制。

为什么我的 PDF 在 Chrome 中显示正确,但在 Word 的 PDF 预览中却是侧的?

几乎总是查看器的 bug 而不是文件的问题。Chrome 用 pdf.js,它多年来都正确支持 /Rotate 条目。Word 的 PDF 预览、OneDrive 的预览、某些老旧电子书阅读器以及少数遗留的企业级查看器有时会忽略 /Rotate,按未旋转的方向显示页面。变通办法是把旋转扁平化:把旋转后的 PDF 通过 在线 PDF 展平,免费 工具,把旋转烘焙进内容流,这样即便对旋转视而不见的查看器也能显示正确方向。

我可以在手机上旋转 PDF 吗?

可以,只要文件装得下浏览器内存。移动浏览器一般允许 JavaScript 每个标签页用几百 MB 的堆,对大多数 PDF 来说足够,但对非常大的扫描件不够。粗略指南:几百 MB 以内的纯文字 PDF 在手机上旋转都没问题;超过 50 到 100 MB 的图像密集型扫描件可能会耗尽内存导致标签页崩溃。如果文件过大,变通办法是在桌面上旋转、先用 免费 PDF 拆分工具 工具拆成更小的文件再分别旋转、或者先用 免费在线 PDF 压缩 工具压缩之后再旋转。

旋转能用于 PDF/A 归档文件吗?

能。PDF/A 是 PDF 的一个受约束的子集,要求文件保持自包含和可复现:字体内嵌、没有外部依赖、没有加密。/Rotate 条目在 PDF/A 中是被明确允许的,旋转也保留 PDF/A 合规性,因为该操作不触及任何 PDF/A 特有的约束。对一份 PDF/A 合规的输入做旋转操作,输出本身也是 PDF/A 合规的,只是交叉引用表的顺序会因为任何保存操作而重新排列。

相关工具