抽出 PDF 頁面
輸入 1, 4, 9-12,就只拿到那幾頁。
本機處理把檔案拖進來,或點擊選擇
支援 PDF。沒有大小上限,不用註冊。
選一份 PDF,輸入你要的頁碼,得到一份只含那些頁面的新 PDF。頁面物件是原封不動複製過去的,所以文字還是可以選取、圖片保持原始品質,沒有任何東西被重新編碼。
「抽出」跟「分割」不是同一件事
分割 PDF 會把每一頁都寫成獨立檔案 —— 十二頁變成十二個檔,然後你再去刪掉不要的十一個。真的需要每一頁各自成檔時,那才是對的工具。
抽出則是把你選的那幾頁留在同一份文件裡,並保持閱讀順序。合約裡真正重要的那三頁、對帳單上只跟一筆交易有關的那兩頁、手冊的第四章 —— 你要的是一個檔案、正確的頁面,事後不必再整理。
頁碼怎麼寫
單頁用逗號分隔,範圍用連字號:1, 4, 9-12 會給你六頁。順序不重要 —— 輸出永遠依文件順序排,所以 9-12, 1 跟 1, 9-12 產生完全相同的檔案。重複的會被合併,所以 3, 3, 3 只會選到第三頁一次。
開放式範圍也可以。5- 表示「第五頁到最後」,-3 表示「前三頁」。你一邊打字,控制項下面那一行就會告訴你會留下幾頁、是哪幾頁,按下去之前可以先確認。
全形標點是收的。用中文輸入法打字時,打出來的逗號是全形的,破折可能是全形連字號或波浪號。大多數英文工具看到這些字元會把整串判定為無效 —— 看起來像使用者打錯,其實是工具沒處理。這裡會先正規化再解析。
什麼會被保留、什麼不會
頁面內容是原樣複製的。文字仍然是真正的文字,可以選取與搜尋;向量圖形還是向量;嵌入的影像保持原本的壓縮 —— 抽出頁面不會重新編碼任何東西,所以不管做幾次都不會有世代性的畫質損失。
有些「文件層級」的結構不會被保留,事先知道比較好。書籤與目錄樹是用物件參照指向頁面的,所以指向你沒留下的頁面的項目會被丟掉。表單欄位會被複製,但參照到其他頁面的腳本與計算可能失效。指向被移除頁面的內部連結會失效。附件、文件層級的 JavaScript 與部分中介資料不會帶過去。
檔案大小通常不會按頁數比例縮小。字型與影像存在一個共用資源池裡,任何被你保留的頁面引用到的東西都必須完整複製過去。從一份用了大型嵌入字型的 60 頁報告裡抽兩頁,產生的檔案可能遠大於原檔的三十分之一。
為什麼這件事在本機做特別重要
想一下大家實際上會從什麼文件裡抽頁面:簽好的租約、健檢報告、薪資單、護照掃描、報稅資料。要抽出的理由通常正是「其餘的部分是我特別不想送出去的資訊」。為了移除敏感頁面而把整份檔案上傳到伺服器,是用最直接的方式毀掉這件事的目的。
這裡的檔案是由 pdf-lib 在這個瀏覽器分頁裡解析的,新文件寫進一個 Blob 交給瀏覽器下載。沒有任何請求夾帶原始檔案,所以你排除掉的那些頁面也從來沒有被傳送過。
常見問題
頁碼要怎麼選?
單頁用逗號分隔、範圍用連字號,例如 1, 4, 9-12。也可以寫 5- 表示「到最後」,或 -3 表示「前三頁」。執行前預覽那一行會顯示會留下哪些頁。
輸出會照我輸入的順序排嗎?
不會,輸出永遠依文件順序。輸入 9, 2 得到的檔案第一頁是原本的第 2 頁。調換頁面順序跟挑選頁面是兩件不同的操作。
抽出來的頁面會掉畫質嗎?
不會。頁面物件是不重新編碼就複製的,所以文字仍可選取、影像保有原始資料。重複做也不會讓檔案變差。
為什麼抽出來的檔案沒有小很多?
字型與影像放在頁面共同引用的資源池裡。被保留頁面用到的東西必須完整複製,所以從字型很重的報告抽兩頁,檔案還是可能很大。
書籤與連結會保留嗎?
頁面內容會保留。指向你沒選到的頁面的目錄項目與內部連結會被丟掉,因為它們已經沒有指向的對象了。