PDF 中的頁首與頁尾行,是指在每一頁的上緣或下緣固定距離處所加蓋的簡短文字,而實際新增這類文字的做法大致可分為四類:瀏覽器工具、桌面排版軟體、命令列轉檔工具,以及 PDF 自動化 API。每種做法在花費心力、可控程度,以及文件位元資料的傳輸位置之間,都有不同的取捨。在單一份合約上加上一行一次性標籤,和在數千份自動產生的發票上加蓋頁碼是截然不同的工作,因此選對類別比挑選特定應用程式更為重要。本指南會在相同的比較軸線上——執行位置、所需打字或腳本撰寫的多寡、可獲得的控制能力、無法做到的事——比較這四類做法,接著以瀏覽器工具進行一次具體操作,讓你能判斷它是否適合你的情境。

為 PDF 新增頁首與頁尾的四種常見做法
多數讀者最終都會在相同的四類做法之間抉擇,無論他們最後使用哪一款應用程式或服務。每一類做法各有不同的樣貌,因此以相同的軸線來比較,就能讓取捨一目了然。
| 做法 | 執行位置 | 典型所需心力 | 最適合的情境 | 主要取捨 |
|---|---|---|---|---|
| 瀏覽器工具(Header Footer PDF) | 在本機瀏覽器中執行,不需上傳 | 選取檔案、輸入兩個文字欄位、點擊一次 | 一次性標籤、機密戳記、簡單頁碼 | 僅限置中的單行文字與標準 Helvetica 字體 |
| 桌面排版軟體(Acrobat、Affinity、MS Word 匯出 PDF) | 安裝於電腦上的應用程式 | 開啟檔案、設定範本、儲存匯出檔 | 需要品牌化頁首、自訂字體、多行文字的文件 | 需要付費授權,且每份文件需各自設定範本 |
| 命令列轉檔工具(wkhtmltopdf、無介面 Chrome) | 本機殼層或建置腳本 | 撰寫帶有頁首/頁尾旗標的指令 | HTML 轉 PDF 流程、可重複執行的任務、CI 執行 | 僅限包含 HTML 的來源格式;無法乾淨地回填至現有 PDF |
| 自動化 API(Power Automate、雲端 PDF SDK) | 在工作流程中呼叫的雲端端點 | 建立一個流程,把檔案與 HTML 片段一起送出 | 為大量自動產生的 PDF 進行批次蓋章 | 位元資料會傳送至第三方伺服器,且每次呼叫需額外付費 |
瀏覽器列是最簡單的切入點:Header Footer PDF 會在你自己的瀏覽器中載入所選檔案,在每一頁繪製一個選擇性的頁首與一個選擇性的頁尾,並將新的位元資料儲存在本機。桌面排版列提供最豐富的文字排版能力,但設定也最繁重。命令列列速度最快且易於腳本化,但它本質上是從 HTML 進行轉檔,因此無法乾淨地回填至現有的 PDF。API 列擴展性佳,當蓋章是更大文件流程中的一個步驟時,便是正確的選擇。
想進一步討論哪一類做法適合哪種工作,為 PDF 新增頁首與頁尾的比較指南以具體範例說明了相同的取捨。
何時瀏覽器工具是合適的選擇
當三個條件同時成立時,基於瀏覽器的工具就能發揮價值:文件已存在為 PDF 格式、你只需要簡短的置中文字而非多行區塊,而且你不想安裝軟體或把檔案傳送到伺服器。機密戳記、像 "Q3-proposal-v4.pdf" 這類的檔案參考、簡短的修訂名稱,以及 "Page 2 of 5" 這類的頁碼,都是典型範例。
兩項實際的限制會使選擇傾向於瀏覽器工具。首先是隱私:法律、財務、人資等文件通常不得離開裝置,因此任何會上傳位元資料的流程都不適用。其次是周轉時間:大多數讀者希望在一分鐘內為單一檔案加蓋戳記,桌面排版軟體若沒有預存範本就難以達到這種速度。瀏覽器工具能同時涵蓋這兩種情況,因為文件是由瀏覽器分頁載入,而非由遠端服務處理。
另一面則是控制能力的取捨。瀏覽器工具會在現有的頁面框線內繪製新文字,因此任何已靠近邊緣的內文都有可能與新加蓋的行重疊。如果你需要保證留白,就必須先在原始文件中預留邊界,或改用能重新編排內容的桌面排版軟體。
如何使用 Header Footer PDF 為 PDF 新增頁首與頁尾
此工具遵循固定的五步驟流程。每一步驟只需要做一個明確的決定,這讓流程可預測,結果也容易驗證。
- 開啟工具並選擇本機的 PDF。 該檔案必須是非空白的 PDF,且大小不得超過 25 MiB。加密、損壞或不支援的檔案會顯示明確的錯誤,而非悄悄通過。
- 輸入頁首文字、頁尾文字,或兩者皆輸入。 每個欄位會去除前後空白,並限制為 120 個 Unicode 字元。將欄位留空即可完全略過該行。
- 插入頁碼代碼。 使用 {page} 代表目前以 1 為起始的頁碼,{pages} 代表總頁數。像 Page {page} of {pages} 這樣的頁尾,在五頁文件的第二頁會顯示為 "Page 2 of 5"。
- 設定字體大小與邊緣邊界。 字體大小接受 6 到 36 點的整數值;邊緣邊界接受 0 到 200 點的整數值。頁首文字會自上緣以下依所設定的邊界加上字體大小來定位;頁尾文字則自下緣以上依相同的邊界定位。
- 建立檔案並下載結果。 瀏覽器會在每一頁繪製展開後的文字,將標準 Helvetica 嵌入一次,並儲存一個新 PDF,其檔名會保留原始檔名的基礎名稱,並加上 -header-footer.pdf。
任何設定的變更都會使先前的下載失效,因此過期的非同步作業無法取代以較新設定所建立的檔案。這能避免使用者拿到錯誤的輸出。繪製文字的呼叫是由 pdf-lib page drawText API 執行,讓瀏覽器端的程式碼能在所設定的邊緣邊界內,將每一行置中於現有的頁面框線中。字體嵌入使用的是 pdf-lib StandardFonts 列舉型別,因此 Helvetica 只會嵌入一次,並在每一頁重複使用。
此工具會改變什麼——以及不會改變什麼
輸出檔案刻意保留了原始文件的大部分內容。下表並排列出哪些會保留、哪些會變動。
| 項目 | 行為 |
|---|---|
| 頁數 | 不變;頁碼反映原始頁數 |
| 頁面順序 | 不變;頁面維持原始順序 |
| 現有的可見內容 | 不變;新文字會覆蓋在上方 |
| 原始頁面框線 | 不變 |
| 檔名 | 保留原始基礎檔名,附加 -header-footer.pdf |
| 字體 | 僅限標準 Helvetica,只嵌入一次 |
| 頁首與頁尾行 | 一個選擇性的頁首行與一個選擇性的頁尾行,皆置中 |
| 每行文字長度 | 去除前後空白後,上限為 120 個 Unicode 字元 |
| 溢位處理 | 字體大小一次減少一點,直到 6 點下限;不會自動換行,也不會悄悄刪除 |
| 加密、損壞或過大的檔案 | 必須是非空白的 PDF,且大小不得超過 25 MiB;失敗會明確顯示,不會被略過 |
| 編碼字元 | 透過標準 Helvetica 支援拉丁字集;其他書寫系統或表情符號會明確失敗,而不會以替代字元顯示 |
這個確定性的溢位規則很重要:窄頁上的長頁尾會持續縮小到 6 點下限。非常窄的頁面或過大的邊界仍可能剩下很小的可用空間,因此在散布或列印前請檢視結果。由於新文字是以附加的 PDF 內容繪製,而非僅供檢視器顯示的疊加層,因此戳記是永久性的,但這也意味著任何已靠近選定邊緣的內文,都有可能與蓋上的行重疊。
在散布或列印前驗證輸出結果
快速的驗證步驟所能避免的窘境,比其他任何步驟都多。請用任何閱讀器開啟新的 PDF,依序確認三件事。
首先,檢查第 1 頁、最後一頁,以及一頁中間頁的可見行。如果你使用了代碼,數字應在每一頁遞增一,且總數應與原始頁數一致。在五頁文件上的頁尾 Page {page} of {pages} 會顯示為 "Page 1 of 5"、"Page 2 of 5",一直到 "Page 5 of 5"。代碼替換具確定性,只要是精確符合的小寫代碼都會被替換,因此其他的大括號文字會保持不變。
其次,檢查是否有重疊。新文字會繪製在現有頁面內容的上方,因此任何已靠近邊緣的內文、圖表或圖片都會與蓋上的行相碰撞。如果你看到重疊,請加大邊緣邊界或縮小字體大小,然後重新產生檔案。此工具不會移動內文、不會讀取文件語言,也不會避開標誌與裁切標記,因此無法保護現有圖稿免於新加蓋的行的影響。
第三,檢查非常窄的頁面。已被旋轉的橫向頁面,或具有異常裁切尺寸的頁面,可能只剩下很少的可使用寬度。在這類頁面上,工具會把字體縮小到 6 點下限。非常窄的頁面或過大的邊界仍可能剩下很小的可用空間,因此在散布或列印前請檢視結果。
如需一份專屬的檢查清單,蓋章後的驗證指南也逐一說明了相同的三項檢查,並列出需要留意的失敗模式。