在 PDF 加入頁首與頁尾看似只需一個點擊,但後續容易發生的錯誤卻十分常見:文字與內文重疊、頁碼從錯誤的頁面開始、字元缺漏,或檔案根本無法產生。上述每一種失敗都有明確成因,幾乎都能在使用前從輸入內容看出端倪。Header Footer PDF 的設計理念是讓失敗模式顯而易見,而非悄悄發生——過大的檔案會直接遭到拒絕、字型無法編碼的文字會以明顯的方式失敗,而非產生損壞的標籤,超出可用頁面寬度的文字則會一次縮小一點字級,下限為 6 點,而非悄悄遭到截斷。掌握驅動這些行為的規則,才能區分乾淨的套印結果與必須重做的 PDF。本文的其餘部分將依您實際遭遇的順序說明這些規則:上線前檢查、新增置中頁首與頁尾並插入頁碼的精確步驟、大小與邊界限制、編碼界線,以及可在送出檔案前抓出錯誤的驗證流程。

how do i avoid mistakes when i use header footer add header footer to pdf
在 PDF 加入頁首與頁尾時如何避免錯誤

為何頁首與頁尾的錯誤反覆發生

大多數頁首與頁尾的錯誤來自同樣幾項錯誤假設。人們預期工具會自動調整頁面大小、支援複雜的代碼、嵌入自訂字型,或保留現有內容並悄悄「挪出空間」。這項工具並不提供上述任何行為,且這是刻意為之。它會在每個結構頁面上繪製一條可選的頁首與一條可選的頁尾,採用標準 Helvetica 實際量測的寬度進行水平置中,並依您指定的邊界距離進行文字定位。原始的頁面框、頁面順序、可見的內文以及原始頁數都維持原樣。新文字會以附加 PDF 內容的方式繪製於每頁之上,而非僅作為檢視器層級的疊加,因此任何已接近邊緣的內容都有可能與新文字重疊。

這份可預測性正是核心價值。工具並不會悄悄降低結果品質——例如拉伸字元、以方框取代、從頁數中漏頁——而是拒絕過度承諾。若文字過寬而超出可用頁面寬度,字級會以一點為單位逐步縮小至 6 點下限。若字型完全無法編碼某字元,則會以可見的錯誤訊息使檔案建立失敗。若檔案已加密、損壞、過大或根本不是 PDF,則會以清楚的訊息拒絕處理。您可在下表中讀到這些限制並據此規劃,這也是本文其餘部分基本上等同於工具所揭露的各項界線的檢查清單的原因。

套印 PDF 前的上線前檢查清單

在操作任何控制項之前,請先確認四件事。第一,來源檔案是未加密、內容非空、且不大於 25 MiB 的 PDF。第二,您已決定要使用頁首、頁尾或兩者皆有,並已寫好各行的確切內容,注意會記得每個欄位會自動去除前後空白,並限制為 120 個 Unicode 字元。第三,您已備妥合理的字級(6 至 36 之間的整數點數)與合理的邊界距離(0 至 200 之間的整數點數)。第四,您已掃描來源頁面,確認沒有內容極為接近頂端或底端邊緣,因為新文字會繪製於既有頁面框內部,並不會將任何內容向內推擠。

設定可接受範圍達到限制時的行為
來源檔案非空 PDF,最大 25 MiB加密、損壞、過大或非 PDF 檔案會以可見錯誤訊息遭到拒絕
頁首/頁尾文字長度0–120 個 Unicode 字元,會自動去除前後空白超過 120 字元的部分會在套印前遭到截斷
字級6 至 36 之間的整數點數寬度超出可用頁面寬度的文字會以一點為單位逐步縮小至 6 pt
邊界距離0 至 200 之間的整數點數頁首位於頂端邊緣下方此距離;頁尾位於底端邊緣上方此距離
頁碼代碼{page} 與 {pages},僅接受小寫其他大括號文字會保留為字面文字;僅有符合此小寫形式的代碼會被取代

在不出錯的前提下為 PDF 加入頁首與頁尾

以下是可產生可預測結果的精確步驟順序。請先閱讀一次,再依序執行。

  1. 在瀏覽器中開啟 Header Footer PDF,並確認您的檔案是可在本機開啟的一般 PDF,且小於 25 MiB。
  2. 從您的裝置中選擇本機 PDF。請等待工具讀取結構頁數,該數值將作為 {pages} 代碼所使用的值。
  3. 在第一個欄位輸入頁首文字,在第二個欄位輸入頁尾文字,或兩者皆輸入。若要加入頁碼,請加入 {page} 表示目前頁數,加入 {pages} 表示總頁數。例如,讀作 Page {page} of {pages} 的頁尾,在五頁文件的第二頁會顯示為 Page 2 of 5。
  4. 選擇字級與邊界距離。常見的起點是在 US Letter 頁面上使用 10 pt 文字搭配 36 pt(半英吋)的邊界距離。若預期文字較長,建議從較小的字級開始,而非從較大的字級開始。
  5. 選擇加入頁首與頁尾。瀏覽器會開啟來源檔案、於每頁繪製展開後的文字,並序列化為新的 PDF。整個過程中 Lizely 不會上傳任何資料。
  6. 下載檔案。檔名會保留您的原始檔名主體,並在結尾附加 -header-footer.pdf。
  7. 開啟下載的 PDF,並檢視前幾頁與中間及最後頁面(共二至三頁)的頂端與底端,確認文字已置中、是否合適,以及未與內文重疊。

每個步驟都對應產品合約中的特定規則,因此任何步驟的錯誤都會在您嘗試建立檔案的當下立刻顯現,而非在散佈之後才出現。

可避免頁碼錯誤的代碼規則

編號系統刻意保持精簡。系統僅辨識兩個代碼,且僅接受完全小寫的形式:{page} 與 {pages}。{page} 會在每頁替換為以 1 為基準的目前頁碼,{pages} 會替換為來源文件在加入任何文字之前的結構頁面總數。替換作業具確定性,並會套用至該代碼出現的所有位置——包括頁首、頁尾或兩者之中。大括號內的其他內容都會保留為字面文字,因此 {Date}、{filename}、{chapter} 或任何其他自訂代碼都會原封不動地保留,而不會被解譯。

由此衍生出幾項規則。編號一律從 1 開始,總數一律反映來源頁數——沒有起始編號偏移、沒有羅馬數字模式、也沒有插入後的獨立計數。若您的文件包含封面頁並希望略過封面,這並非工具會自動處理的功能;您需要先使用Delete PDF Pages 移除該頁,再對結果進行套印。相同的簡單原則亦適用於奇數/偶數頁、章節專屬編號與 Bates 編號:這些功能皆不支援,且這是刻意為之,使輸出結果易於對照來源進行驗證。

大小、邊界與溢位:工具會調整與不會調整的部分

字級、邊界距離與溢位之間會以特定方式相互影響。字級為實際的呈現點數大小;邊界距離以頁面頂端或底端邊緣為基準的點數測量;文字則以內嵌的標準 Helvetica 字型所量測的實際文字寬度進行水平置中。兩條文字都會繪製於既有頁面框內部,因此邊界距離為 0 時,文字會緊貼邊緣,而邊界距離為 200 時,文字在大多數文件上會明顯位於頁面內側。

邊界距離僅為垂直方向的設定:頁首位於頂端邊緣下方此距離;頁尾位於底端邊緣上方此距離。水平置中採用內嵌標準 Helvetica 字型的實際量測寬度,並未自頁面寬度中扣除任何水平邊界。在 10 pt Helvetica 下,一般的簡短標籤能舒適地呈現;然而長達 110 字元的行將觸發溢位行為,並以一點為單位逐步縮小,直至容納為止或達到 6 點下限。工具不會拉伸、換行或刪除字元以強迫符合,而是以透過縮小字級來處理。若標籤在 6 pt 時仍無法容納,檔案仍會產生,但文字將緊貼甚至超出邊界距離;安全的做法是縮短文字或縮小邊界距離。

標準 Helvetica 支援實用的拉丁字元集,但並非支援所有書寫系統或表情符號。工具會在繪製前檢查編碼:若 Helvetica 無法呈現您文字中的字形,則會以可見的錯誤訊息使檔案建立失敗,而非產生缺漏字形的方框。若需要多語言品牌、自訂字型或精確排版,請使用可嵌入所需授權字型的桌面排版應用程式。

會導致工具直接失敗的特殊情況

某些輸入會觸發可見錯誤,而非僅產生部分結果。受密碼保護或加密的 PDF 會遭到拒絕——工具無法在未提供密碼的情況下解鎖檔案,亦無悄悄略過的機制。大於 25 MiB 的檔案會在任何繪製作業開始前遭到拒絕。空檔案與實際上並非 PDF 的檔案(例如將其他文件重新命名為 .pdf)會因相同原因遭到拒絕。無法解析的損壞 PDF 會產生可見的解析錯誤。上述情況皆無法在工具內部修復;修正作業必須從來源檔案本身進行,而非透過控制項處理。

非同步行為是另一項常被忽略的錯誤來源。變更任何設定——文字、字級、邊界距離或檔案——都會撤銷先前的下載,使過時的結果無法被誤認為目前的設定。若您先前曾下載檔案,之後又編輯了任一欄位,則頁面上將不再連結先前的檔案;您必須重新建立並下載檔案。這是刻意為之:可避免在散佈新標籤文字時誤用舊版本。

在送出檔案前驗證輸出結果

最後一層的錯誤防護就是驗證。請在一般的檢視器中以 100% 縮放開啟下載的 PDF,並檢查第一頁、中間頁和最後一頁。確認該行已置中、邊距看起來一致,且沒有任何內文重疊。如果您的文字包含權杖,請確認 {page} 正確遞增(1、2、3……),且 {pages} 等於來源頁數。如果您打算列印,請對一兩頁做快速的列印預覽——許多可見的重疊問題只有在列印比例下才會出現,特別是在狹窄的頁面上,因為邊距會佔去大部分可用的高度。

想進一步了解權杖、邊距和限制的強制執行方式,請參閱 PDF 頁首與頁尾戳記:權杖、邊距與限制 指南。在技術實作方面,文字繪製使用的是 pdf-lib 中的 PDFPage.drawText,並以 標準 Helvetica 進行文字測量;這兩種行為都可以在開放原始碼的 API 文件中看到。

相關閱讀:在為 PDF 加入頁首與頁尾後檢查結果。