若要在 PDF 頁首或頁尾中同時加入目前頁碼與總頁數,請在頁首或頁尾的文字方塊中輸入小寫的代碼 {page} 與 {pages} —— {page} 會在每一頁顯示為該頁以一為起算的頁碼,而 {pages} 則會顯示為結構上的總頁數。因此,頁尾若寫成「Page {page} of {pages}」,在一份五頁 PDF 的第二頁上會呈現為「Page 2 of 5」,第三頁則為「Page 3 of 5」,依此類推。代碼替換是確定性的,只要欄位中出現完整相符的小寫代碼就會套用,不論位置為何。{page} 代碼會在每一頁替換為該頁自己的頁碼,而 {pages} 在每一頁都解析為同一個總數。大括號中的其他內容則會原封不動保留,因此頁尾中若不小心寫了 {Year},輸出時仍會保留為 {Year}。編號一律從 1 開始,而總數永遠反映新增任何文字之前的來源文件,以確保輸出結果可預期。整個作業都在你的瀏覽器中本機執行,因此來源檔案與已加蓋的副本都不會被上傳。

how do i add current and total page numbers when i use header footer add header footer to pdf
在 PDF 頁首中加入目前頁碼與總頁數

{page} 與 {pages} 實際解析為何

這兩個預留位置僅用於簡單的頁碼功能,別無其他用途。{page} 是以一為起算的計數器,依序走訪來源 PDF 的結構頁面,在第一頁從 1 開始,第二頁為 2,依此類推。{pages} 則是靜態值 —— 也就是原始文件的總頁數 —— 在每一頁都顯示相同的數字。替換發生在渲染階段,因此你在欄位中看到的文字並不會以原樣寫入輸出;實際儲存的是每一頁展開後的字串。

兩個代碼都採完全相符且區分大小寫的比對方式。{PAGE}、{Page} 與 {pages} 對引擎而言是三個不同的字串;只有小寫的 {page} 與小寫的 {pages} 會展開。如果輸入 {Year}、{Filename} 或任何其他帶括號的文字,輸出時會逐字保留。這在你想讓某個預留位置在欄位中保持可見、卻仍讓真正的代碼展開時特別有用。

這裡沒有起始編號的位移設定。來源 PDF 的第一頁在加蓋後的副本中永遠會呈現為第一頁,而總數也絕不會反映新加蓋的文件 —— 它永遠反映建立檔案時所依據的原始頁數。這就是為什麼頁尾若寫成「Page {page} of {pages}」,即使日後你對檔案進行剪裁、旋轉或重新排列,結果仍然正確:{pages} 的值會鎖定在引擎加蓋時所讀到的頁數。

頁首或頁尾中可用的頁碼格式

由於引擎只辨識 {page} 與 {pages},你的頁尾可以使用任何將這兩個代碼與一般文字結合的措辭。頁首與頁尾欄位在去除空白後,各自最多接受 120 個 Unicode 字元,足以應付下方列出的常見樣式。

下表精確顯示每種樣式在五頁來源 PDF 的不同頁面上的展開結果。「Input」欄是你在頁首或頁尾欄位中輸入的內容;其餘欄位則是每一頁加蓋後所呈現的結果。

你輸入的內容Page 1Page 2Page 3Page 4Page 5
Page {page} of {pages}Page 1 of 5Page 2 of 5Page 3 of 5Page 4 of 5Page 5 of 5
{page} / {pages}1 / 52 / 53 / 54 / 55 / 5
- {page} -- 1 -- 2 -- 3 -- 4 -- 5 -
Confidential — page {page}Confidential — page 1Confidential — page 2Confidential — page 3Confidential — page 4Confidential — page 5
{Year} — {page} of {pages}{Year} — 1 of 5{Year} — 2 of 5{Year} — 3 of 5{Year} — 4 of 5{Year} — 5 of 5

最後一列是值得牢記的重點:只有 {page} 與 {pages} 會展開。大括號中的其他內容則會完整保留你輸入的樣貌。

如何在每一頁加蓋「Page X of Y」

最乾淨的做法是使用一個專門的工具,而不是完整的 PDF 編輯器,特別是當你唯一想做的變更只是在頁尾加上置中的頁碼時更是如此。Header Footer PDF 會接收一份本機 PDF,在每個結構頁面上各繪製一行可選的頁首與一行可選的頁尾,並在不上傳來源檔案的情況下儲存新的副本。以下是「Page {page} of {pages}」情境的完整操作步驟。

  1. 在瀏覽器中開啟 Header Footer PDF。無需註冊,無需安裝。
  2. 從你的電腦中選擇來源 PDF。檔案必須是非空白的 PDF,且大小不得超過 25 MiB。
  3. 將 Header 欄位留空,或填入如「Confidential」這類獨立標籤,讓頁首與頁尾同時顯示。
  4. 在 Footer 欄位中輸入 Page {page} of {pages}。這兩個代碼為小寫且區分大小寫 —— 請保持與範例完全一致。
  5. 選擇字型大小(6 至 36 之間的整數 pt)與邊界距離(0 至 200 之間的整數 pt)。如果沒有把握,先從 9 pt 與 24 pt 開始。
  6. 點選 Add header and footer。瀏覽器會逐頁展開每個代碼、依指定的邊界繪製該行,並在本機儲存一份新的 PDF。
  7. 下載已加蓋的檔案。新檔名會保留你的來源主檔名,並加上 -header-footer.pdf,因此 report.pdf 會變成 report-header-footer.pdf。
  8. 開啟下載的 PDF 並跳到第二頁。在五頁的來源中,你應該會在底邊上方看到置中的「Page 2 of 5」。

如果你同時輸入了頁首與頁尾,頁首會位於頂邊下方「邊界加上字型大小」的位置,而頁尾則會從底邊上方同樣的邊界開始繪製。兩行皆使用內嵌的標準 Helvetica 字型,根據實際文字寬度水平置中,詳細說明請參考 pdf-lib drawText API 文件。

每一頁都保持不變的部分

此工具會一致地為每個結構頁面加蓋 —— 內建並無將第一頁視為封面、羅馬數字模式,或是在奇偶頁之間交替內容的規則。只要填寫 Footer 欄位,每一頁都會收到同一行帶有相同代碼的內容,只有 {page} 會在翻頁時改變。這種一致性是刻意設計的,讓結果容易驗證:開啟已加蓋的 PDF、跳到最後一頁,確認頁尾顯示為「Page N of N」。

來源的頁面框線、頁面順序、既有的可見內容與原始頁數都會完整保留。新增的文字會以額外 PDF 內容的形式繪製,而非僅供檢視器使用的疊加層,因此它屬於檔案的一部分,並非暫時性的標記。由於工具並不會自動下移本文文字、重新編排段落、偵測安全邊界,或將標誌與裁切線移開,因此靠近邊緣的既有內容可能會與所選的行重疊。如果你的來源檔案底部已經有頁尾,再加入第二個頁尾將會繪製在其上方。

限制、溢位與 6 點下限

幾項硬性限制決定了此工具能加蓋的內容,在你定稿頁尾之前值得先了解。

設定接受範圍在邊界時的行為
字型大小6 至 36 pt 之間的整數若一行寬度超過可用的頁面寬度,字級會一次降低 1 pt,直到 6 pt 為止。文字絕不會被拉長、換行或悄悄刪除。
邊界距離0 至 200 pt 之間的整數頁首位於頂邊下方「邊界加字級」處;頁尾位於底邊上方同樣的邊界處。
每個欄位的文字去除空白後最多 120 個 Unicode 字元每個文字欄位都會去除空白,並限制為 120 個 Unicode 字元。
來源檔案大小不超過 25 MiB 的非空白 PDF加密、損壞、超過大小或副檔名不符的檔案會產生明確的錯誤,且不會被略過。
內嵌字型標準 Helvetica僅支援實際可用的拉丁字元集。若輸入的文字無法編碼,檔案會明確失敗,以避免發生無聲的字元替換。

最常見的失敗模式是頁尾過長,無法容納於較窄的頁面或較大的邊界。除了將字型大小降至 6 點下限之外,此工具不會以其他方式擅自換行或縮放文字 —— 要麼適配,要麼失敗。因此當輸出看起來過於擁擠時,請縮短頁尾文字或縮小邊界,再重新加蓋。任何設定變更也會撤銷先前的下載,因此舊版檔案不會被誤認為較新的設定結果。關於僅支援拉丁字的限制,StandardFonts 參考資料 列出了實際可用的字形。

何時 {page} 與 {pages} 是合適的工具

這種做法非常適合用於簡單的置中標籤 —— 例如「Page 2 of 5」這類頁碼、機密註記、檔名、修訂名稱,以及其他類似的單行加蓋 —— 前提是文件本身已有足夠的邊界能容納文字。當檔案絕不能離開你的電腦時,這種做法也同樣合適:載入、字型內嵌、繪製、儲存與建立下載的整個流程都在瀏覽器中完成,完全不會送到任何伺服器。

若你需要貝茲編號、羅馬數字前言、多行頁首、圖片、日期、超連結、奇偶頁不同的內容、排除封面,或是非拉丁品牌所需的自訂內嵌字型,那麼這個做法就不適合。面對這些需求時,具備完整字型授權與排版控制能力的桌面排版應用程式才是正確的層級。如果你想更深入了解在此類本機加蓋流程中標籤與頁碼的搭配方式,PDF 頁首頁尾加蓋工具指南 從標籤與頁碼的角度介紹了同一個工具。

若你正在比較各種方案,避免在 PDF 加入頁首與頁尾時犯錯 一文對此有詳細說明。