PDF 旋轉

轉一次就寫進檔案裡,不是只轉你眼前這一次。

本機處理

把檔案拖進來,或點擊選擇

支援 PDF。沒有大小上限,不用註冊。

    選一份 PDF、選方向,需要的話再指定頁碼。旋轉會寫進文件本身,所以在任何閱讀器、任何裝置、以及列印時都是正的 —— 這跟 PDF 閱讀器上那個旋轉按鈕不同,那個通常只改變你現在看到的畫面。

    為什麼閱讀器裡的旋轉按鈕不夠

    大多數 PDF 閱讀器都有一個旋轉控制,會把畫面上的頁面轉過來,然後忘記。關掉檔案再打開,它又躺回去了。有些閱讀器可以把旋轉存下來,很多不行,而瀏覽器內建的檢視器基本上都不行。把檔案寄給別人,對方看到的是原本的方向。

    這個工具改的是存在頁面裡的一個值。每一個 PDF 頁面都帶著一個 Rotate 項目 —— 一個 0、90、180 或 270 的整數 —— 而每一個符合規範的閱讀器在顯示或列印之前都必須套用它。設定它,等於這一頁對所有人來說都真的轉過來了。

    旋轉是無損的,原因在這裡

    旋轉 PDF 頁面不會重畫任何東西。沒有影像被重新取樣、沒有文字被重新渲染、沒有東西被重新壓縮。唯一改變的是頁面字典裡的一個數字,所以一頁連轉四次 90 度之後,會是跟你開始時逐位元相同的文件。

    這跟旋轉 JPEG 非常不同 —— 那種格式只要旋轉角度不是 90 的倍數(在某些工具裡即使是也一樣)就會強制重新編碼並損失畫質。這裡你想轉幾次就轉幾次,不會累積任何傷害。

    為什麼有些頁面轉了看起來沒轉

    掃描器經常已經寫入了 Rotate 值。有的頁面內容其實是橫著畫的,再用 Rotate 90 補償回來,所以你打開時看到的是正的。對這樣的頁面直接把 Rotate 設成 90,畫面上不會有任何變化 —— 因為它本來就是 90,而使用者很合理地會判斷這個工具壞了。

    這個工具是把你指定的角度「加」在既有角度上再正規化,所以「順時針 90 度」永遠是「從你現在看到的樣子再轉四分之一圈」。那才是大家要求旋轉時的意思。

    有一個相關的意外:方向混合。表格是橫的、文字是直的那種報告,本來就在不同頁面上帶著不同的 Rotate 值。把全部都轉 90 度會修好表格、弄壞文字。頁碼選擇欄位就是為這件事準備的。

    只轉某幾頁

    頁碼欄位留空就是全部頁面都轉。填了就只轉那些頁 —— 單頁用逗號分隔、範圍用連字號,例如 3, 8-11。開放式寫法也可以:5- 表示第五頁到最後。

    中文輸入法打出來的全形逗號與破折號是收的,會先正規化,而不是直接判定為無效輸入。

    如果你也會用加頁碼那個工具,有一件事值得知道:頁碼是畫在頁面座標系裡的,所以先加頁碼再旋轉,那個數字會跟著頁面內容一起被轉過去。請先旋轉,再加頁碼。

    在你的瀏覽器裡完成

    文件被載入、頁面字典被修改、結果被儲存 —— 全部在這個分頁裡,由 pdf-lib 以普通的 JavaScript 執行。因為旋轉只碰到檔案裡極少的部分,即使是好幾百頁的文件也很快。

    什麼都不會被上傳。旋轉的時候打開開發者工具的 Network 分頁看看:沒有任何請求夾帶你的檔案,因為根本沒有一個端點會接收它。

    常見問題

    旋轉是永久的嗎?

    是。角度存在頁面本身,所以任何裝置上的任何閱讀器都會套用它,列印時也一樣。這跟閱讀器上的旋轉按鈕不同 —— 那個通常只影響你當下這一次。

    旋轉會讓畫質變差嗎?

    不會。改的只是每一頁字典裡的一個數字,沒有東西被重新渲染或重新壓縮,所以反覆旋轉完全沒有代價。

    我轉了 90 度但畫面沒變,為什麼?

    通常表示那一頁本來就帶著旋轉值。這個工具是加在既有角度上而不是覆寫它,所以四分之一圈永遠是從你現在看到的樣子再轉四分之一圈。

    可以只轉某幾頁嗎?

    可以。頁碼欄位留空代表整份文件,或輸入 3, 8-11 這種寫法只轉那幾頁。直式文字混橫式表格的報告就需要這個。

    我的檔案會被上傳嗎?

    不會。文件是在你的瀏覽器分頁裡改寫的,從來沒有被傳送出去。你可以在開發者工具的 Network 分頁驗證。