piapia123
zh

PDF 页面旋转

文档

所有处理都在浏览器本地完成,数据不上传服务器

把文件拖到这里,或点击选择

PDF · 单个文件不超过 100 MB

把页面转正。扫描件横躺有两种原因,要做的操作正好相反,所以这里给了两个模式:叠加(在原角度上再转 90°)用于"阅读器里显示是歪的"—— 也就是文件里的方向标记写错了;覆盖(直接设成某个角度)用于"内容真的画歪了、而标记是 0"。默认是叠加,因为在阅读器里看到的效果是用户唯一能确定的事。额外一句要紧的提醒:这里改的是页面方向标记,不是把内容真的转过来 —— 好处是文件不变大、文字仍可选中,代价是不读这个标记的软件会照旧躺着显示(这在 FAQ 里有详述)。

功能

  • 转 90° / 180° / 逆时针 90°
  • 两个模式:叠加(再转 90°)与覆盖(设为固定角度)
  • 可只转指定页(1-3,5 这样的写法),例如只转横躺的那几页
  • 同时写 /Rotate 标记与页面显示方向,阅读器与打印都生效
  • 不改动内容流,文件几乎不变大,文字仍可搜索复制
  • 输出文件名可自定义
  • 文件不上传、不经过任何服务器

使用方法

  1. 把 PDF 拖进来
  2. 选「叠加」或「覆盖」,再选转多少度
  3. 只转某几页就填页码范围
  4. 下载结果,在阅读器里确认方向

常见问题

转完之后还是歪的?
两个可能。一是你看的那个软件不读方向标记 —— 手机相册预览、聊天软件的缩略图、部分老阅读器都会这样。用正规的 PDF 阅读器(Acrobat、Chrome 内置、macOS 预览)打开就是正的。二是内容本身画歪了、而页面标记是 0:这时"叠加"只是在 0 上加角度,转出来的方向可能与预期差 90°,改用「覆盖」模式直接设成需要的角度即可。判断方法:在正规阅读器里看它显示的方向,如果本来就正、只是某个软件显示歪,选叠加;如果正规阅读器里也是歪的,选覆盖。
能不能把内容真的转过来(不依赖标记)?
那需要重新生成页面内容流(把每个绘制指令旋转),pdf-lib 做不到 —— 它没有内容流的变换能力。实际能做的替代路径是「PDF 转图片」再「图片转 PDF」:栅格化之后方向是烘焙进像素的,任何软件都会显示成转过的样子。代价是文字变成图片、不可搜索、体积变大,所以只在确实需要"不依赖标记"时才用。
整份文档里只有几页横躺,能只转那几页吗?
能。在「转哪些页」里写页码或范围(`3`、`1-3`、`5,8-10` 都行)。混合方向的文档很常见 —— 比如扫描时中间夹了一张横向的表格,那几页单独转就好。注意每一页的角度是各自记着的,所以同一个文件里可以同时存在 0°、90°、180° 的页。
文件会上传吗?
不会。改的是 PDF 里的一个字段,在浏览器内存里完成,没有网络请求,断网也能用。

相关工具