跳至內容
100% 本地 · 上傳 0 KB壓縮 PDF

如何修復損壞的 PDF

🔒 您的檔案永遠不會離開您的裝置。所有處理都在瀏覽器中本地進行。

損壞的 PDF 有內部結構損傷——交叉參照表、標頭、物件串流或結尾標記缺失或不一致,使閱讀器無法定位頁面。修復意味著從存活的物件重建此結構。有時有效;有時損壞太嚴重而頁面遺失。本指南解釋四種損壞類型、能重建受損檔案的本機工具,以及修復不可能時的誠實退路。

IXPDF 無法修復損壞的 PDF
修復損壞的 PDF 需要重建其交叉參照表並從原始位元組重新組裝物件串流——瀏覽器 PDF 引擎(包括我們的)無法可靠做到的任務。這根據 AGENTS.md §16 標記為研究待定。以下工具在您的機器上本機執行,不會上傳您的檔案。作為部分退路,擷取頁面有時可以從部分損壞的檔案中取出完好的頁面。

四種 PDF 損壞類型

1. 標頭損壞

PDF 的第一行是 %PDF-1.x(x 為版本)。如果此標頭缺失或損壞,檢視器拒絕開啟檔案,因為無法將其識別為 PDF。這是最容易修正的損壞:在文字編輯器中開啟檔案,在最開頭加入標頭行 %PDF-1.7。儲存並嘗試重新開啟。

2. 交叉參照表(xref)損壞

xref 表是 PDF 的索引——告訴檢視器每個物件(頁面、字型、影像)在檔案中的位置。如果 xref 缺失或指向錯誤偏移,檢視器找不到頁面。這是最常見的損壞形式,通常由截斷下載或寫入器在完成檔案前崩潰引起。

修正:用 ghostscript(gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in.pdf)或 Adobe Acrobat Preflight 重建 xref。兩個工具掃描檔案尋找物件並寫入新的 xref。如果物件本身完好,這會完全修復檔案。

3. 物件串流損壞

現代 PDF 將多個物件封裝在壓縮的物件串流中以節省空間。如果串流損壞,內部的物件無法復原——它們遺失了。症狀包括檔案開啟但顯示空白頁面或缺少字型。修復工具可以重建 xref 但無法復原從未正確寫入的物件。

修正:嘗試 ghostscript 或 Acrobat Preflight。如果修復後頁面仍為空白,這些頁面的物件在原始損壞中已遺失。請從備份還原或從來源應用程式重新匯出。

4. 結尾標記損壞

結尾標記是檔案末尾的小區塊,指向 xref 和根目錄。沒有有效結尾標記的檔案無法讀取,即使所有物件完好。這通常發生在寫入被中斷時——檔案在物件中途突然結束,而非以 %%EOF 結束。

修正:ghostscript 和 Acrobat 通常可以重建缺失的結尾標記。如果檔案在物件中途結束,您可能需要先截斷損壞的物件,然後重建。qpdf --check 命令報告哪些結構元素缺失。

本機修復工具

以下每個工具都在您的機器上執行。都不會上傳您的文件。這很重要:損壞的檔案可能仍包含可讀的敏感內容,將它上傳至「免費線上 PDF 修復」服務會在您知道什麼存活之前將該內容傳送至陌生人的伺服器。

1. ghostscript(免費、跨平台、命令列)

最可靠的免費修復工具。它重新讀取檔案、重建 xref 和結尾標記並寫入乾淨的副本。Windows 上:

gswin64c -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf in.pdf

macOS 和 Linux 上,將 gswin64c 替換為 gs。ghostscript 無法修復損壞的物件串流,但能修正大多數 xref 和結尾標記損壞。

2. Adobe Acrobat Pro(付費,Preflight)

Acrobat Pro 的 Preflight 功能有「修復 PDF」設定檔,可重建 xref、重新整合缺失字型並壓平損壞的註解。開啟檔案,然後工具 > 列印生產 > Preflight,執行修復設定檔。Acrobat 是最強大的修復工具但不免費。

3. PDF24 Creator(免費,Windows)

PDF24 包含「修復 PDF」工具,以 GUI 封裝 ghostscript。開啟 PDF24,選擇修復 PDF,拖放檔案並儲存結果。如果您在 Windows 上且不想使用命令列,這很有用。

4. Recovery Toolbox for PDF(付費,Windows)

專用的商業修復工具,可處理 ghostscript 無法修正的嚴重損壞。它逐位元組掃描檔案尋找可識別的物件簽章並重建能重建的內容。僅在免費工具失敗且檔案重要到值得授權費用時使用。

逐步教學:用 ghostscript 修復

  1. 安裝 ghostscript。Windows 上從 ghostscript.com 下載。macOS 上 brew install ghostscript。Linux 上使用套件管理器。
  2. 開啟終端機。導覽至包含損壞 PDF 的資料夾。
  3. 執行修復命令。gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=repaired.pdf corrupted.pdf
  4. 驗證結果。在 Acrobat Reader 或預覽中開啟 repaired.pdf。如果開啟並顯示所有頁面,修復成功。
  5. 如果頁面仍缺失,原始物件串流已損壞。請從備份還原或從來源應用程式重新匯出。

退路:用 IXPDF 擷取完好的頁面

當完全修復失敗時,您有時可以復原完好的頁面。開啟擷取頁面,拖放損壞的檔案並嘗試擷取第 1 頁。如果成功,嘗試範圍(1–5、6–10)直到到達損壞區。IXPDF 在您的瀏覽器中本機讀取檔案——無上傳——並從能解析的頁面寫入新的 PDF。損壞區的頁面會失敗;其餘將被復原。

常見錯誤

  • 將損壞檔案上傳至線上修復服務。檔案可能仍包含可讀的敏感內容。請使用本機工具。
  • 覆寫唯一副本。請始終將修復後的檔案寫入新名稱。在驗證修復之前保留原始損壞檔案。
  • 假設修復會還原遺失的內容。如果物件串流已損壞,內容已消失。修復重建結構;無法復原缺失的位元組。
  • 嘗試修復受密碼保護的檔案。加密不是損壞。請先解密(用密碼),然後視需要修復。

嘗試復原完好的頁面

IXPDF 的擷取頁面工具在您的瀏覽器中本機執行。拖放損壞的檔案並嘗試取出存活的頁面。您的檔案永遠不會離開您的裝置。

開啟擷取頁面