PDF 加頁碼

把頁碼編對 —— 包含「封面不編」這個老問題。

本機處理

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

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

頁碼是用 Helvetica 畫的 —— 那是每一個 PDF 閱讀器本來就有的字型,所以檔案不會變大、也不必嵌入字型。代價是樣式只能用阿拉伯數字與英文,沒有「第 3 頁」這種選項(那需要嵌入一份好幾 MB 的中文字型)。

    選一份 PDF,頁碼會以真正的文字畫到每一頁上。你可以決定它放在哪、長什麼樣、從第幾頁開始編,以及那一頁要顯示哪個數字 —— 後面兩件事是兩個獨立的設定,而那正是大多數頁碼編錯的原因。

    兩個常被混在一起的數字

    「從第 3 頁開始編」跟「從 3 開始數」是兩個不同的指令,而幾乎所有關於頁碼的抱怨,都來自只提供其中一個的工具。

    論文是標準例子:封面與致謝完全不該有頁碼,而緒論 —— 實體上的第三張紙 —— 必須印成第 1 頁。那需要「從第 3 頁開始編」搭配「第一個數字是 1」。

    相反的情況一樣常見:從長手冊裡抽出來的一章,在你的檔案裡實體上是第 1 頁,但必須讀作第 48 頁,才能跟資料夾裡其餘部分對得上。那是「從第 1 頁開始編」搭配「第一個數字是 48」。兩者只差一個欄位,所以這裡兩者都支援。

    該放哪裡,以及為什麼這比看起來重要

    下方置中是安全的預設值,也是大多數印刷文件的慣例。「下方外側」—— 奇數頁靠右、偶數頁靠左 —— 是書籍的慣例,它存在的理由是那正好是讀者翻頁時拇指露出的那個角。這個工具是在每一頁的固定位置放頁碼而不是左右交替,那對單面文件與在螢幕上閱讀的文件才是對的。

    兩個實務提醒。如果文件會裝訂或打孔,請讓頁碼離裝訂邊遠一點,否則它會消失在書溝裡。另外,如果頁面本來就有頁尾,同一個高度上蓋下去的頁碼會壓在它上面 —— 工具沒有辦法知道那裡原本有什麼,所以整份跑之前先試一頁。

    為什麼沒有「第 3 頁」這個選項

    這裡的樣式選項是阿拉伯數字與英文:3、3 / 12、Page 3 of 12。刻意沒有「第 3 頁」這個選項,而原因值得理解,而不是覺得被敷衍。

    PDF 規範內建十四個標準字型,每一個閱讀器都必須具備,而頁碼是用其中的 Helvetica 畫的。這是輸出檔案不會變大、而且在任何地方顯示都一致的原因。這些字型完全沒有中文字符。用 Helvetica 去畫「頁」這個字不會產生一個小錯誤,而是產生什麼都沒有,或一串空白。

    另一條路是嵌入一份中文字型,而一份堪用的繁體中文字型即使做了子集化仍然有好幾 MB —— 那會被加進你的文件裡。那是一個合理的工具,但它是另一個工具、有另一種體積取捨。所以我們寧可把這件事講明白,也不要提供一個會默默輸出空白的選項。

    實際上被寫進檔案裡的是什麼

    頁碼是真正的 PDF 文字,不是蓋在頁面上的圖片。你可以選取它、搜尋它,而且在任何放大倍率或列印解析度下都保持銳利。頁面上原有的一切完全沒被動過 —— 既有內容不會被重新編碼,所以影像品質與文字保真度跟原本一模一樣。

    頁碼會成為頁面內容的一部分,也就是說它不是一個之後可以關掉的註解圖層。如果你可能需要原檔,請留一份沒有頁碼的副本。旋轉也跟這件事有關:頁碼是畫在頁面座標系裡的,所以如果你還打算旋轉頁面,請先旋轉、再加頁碼。

    本機處理,所以沒有一份文件需要託付給任何人

    加頁碼往往是文件送給指導教授、客戶、法院或印刷廠之前的最後幾個步驟之一 —— 也就是說,它發生在檔案已經完成、也最敏感的時候。為了「蓋上數字」這種機械性的工作,把一份寫完的論文或一份完整合約上傳到陌生人的伺服器,是一筆很差的交易。

    這裡整個操作都在這個瀏覽器分頁裡跑:pdf-lib 載入文件、嵌入 Helvetica、畫上文字、把結果存成一個 Blob。動手的時候打開開發者工具的 Network 分頁 —— 不會出現任何夾帶你文件的請求;而這一頁的 Content-Security-Policy 意味著即使我們的程式想這麼做,你的瀏覽器也會擋掉。

    常見問題

    可以跳過封面,但頁碼還是從 1 開始嗎?

    可以,這正是那兩個獨立設定的用途。把「從第幾頁開始編」設成 2 或 3,讓前面幾張不編;再把「第一個數字」設成 1,第一個被編號的頁面就會顯示 1。

    頁碼可以寫成「第 3 頁」嗎?

    不行。頁碼用的是 Helvetica —— 每個 PDF 閱讀器都內建的標準字型之一 —— 而這些字型沒有中文字符。要支援中文就得把一份好幾 MB 的字型嵌進你的檔案,那是另一種取捨。

    頁碼是真的文字還是圖片?

    真的文字。可以選取、可以搜尋,而且在任何放大倍率或列印解析度下都保持清晰。

    之後可以把頁碼移除嗎?

    這個工具做不到。頁碼會成為頁面內容的一部分,而不是獨立的註解圖層,所以如果你可能需要原檔,請保留一份沒有頁碼的副本。

    如果頁面本來就有頁尾怎麼辦?

    放在同一個高度的頁碼會跟它重疊。沒有工具能知道那裡原本有什麼,所以整份處理之前先試一頁 —— 或者換一個位置。