PDF 文件 (.pdf)
ISO 標準可攜式文件格式(PDF)是一種無處不在的數位紙張標準,旨在呈現一致的文件,且不受應用軟體、硬體與作業系統的限制。
將 PDF 轉換為 JPG
免費的瀏覽器端 PDF 轉 JPG 轉換器。在您的裝置上即時轉換檔案。
線上壓縮 PDF
具隱私保障 - 檔案絕不會離開您的裝置
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 PDF 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 PDF 檔案:
十六進位簽章(偏移量 0):
25 50 44 46ASCII 表示法: %PDF
標準化: ISO 32000-1 (2008) / ISO 32000-2 (2020)
技術規格
| 容器架構 | 二進位與 ASCII 混合物件階層,具有交互參照表 |
| 壓縮 | FlateDecode (Deflate)、DCTDecode (JPEG)、CCITT Fax、JBIG2、JPXDecode |
| 位元組序 | 二進位物件串流使用大端序(網路位元組順序) |
| 色彩空間 | sRGB, Display P3, DeviceCMYK, 灰階, 專色(Pantone) |
| 色版與結構 | 多層向量、排版、點陣串流與內嵌中繼資料 |
| 最大尺寸 | 200 x 200 英吋(PDF 1.6+ 中的 UserUnit 允許高達 15,000,000 英吋) |
| 透明度 | 完整的 alpha 透明度、混合模式與不透明度遮罩 |
| 串流與漸進式 | 線性化 PDF(「Fast Web View」)允許透過 HTTP 範圍請求進行位元組範圍串流 |
技術比較矩陣:PDF 對比競爭格式
| 技術屬性 | PDF (目前) | DOCX | EPUB | HTML5 |
|---|---|---|---|---|
| 視覺版面保真度 | 固定頁面版面,旨在保留定位;顯示結果會因檢視器與輸出裝置而異 | 流動式排版;會因 Word 版本與已安裝字型而異 | 可重新排版的閱讀器版面;不保證固定的排版 | 流動式 CSS 方塊模型;取決於螢幕的算繪結果 |
| 獨立性 | 可內嵌字型與圖片資源,但內容取決於檔案與製作設定 | 獨立的 XML 容器(系統字型通常未內嵌) | 獨立的 ZIP 容器(封裝的 XHTML/CSS 資源) | 需要外部 HTTP 資源,除非透過 MHTML 封裝 |
| 密碼編譯簽章 | 內建於 ISO 規格中的原生 PAdES 與 X.509 密碼編譯數位簽章 | 支援 Office XML DSig 數位簽章 | 需要自訂數位容器簽章 | 需要 Web Crypto API 或外部 TLS 傳輸保證 |
| 行動裝置回應式 | 固定頁面畫布(在小螢幕上需要縮放與平移) | 極佳的回應式文字重新排版 | 專為流動式行動電子書閱讀而設計 | 透過 CSS 媒體查詢實現原生回應式版面 |
| 標準化 | 開放國際標準(ISO 32000-2:2020) | ECMA-376 / ISO/IEC 29500 | W3C / IDPF 開放標準 | W3C Living Standard / WHATWG |
常見損壞模式與十六進位修復指南
Acrobat 或 PDF 檢視器回報「檔案已損毀,無法修復」或開啟時完全空白。
根本原因: 以 ASCII 模式進行 FTP 或 HTTP 傳輸時,將二進位位元組序列進行了轉換(將 0x0A 取代為 0x0D 0x0A),導致交互參照(xref)表格的位元組偏移量錯亂。
修復: 現代的 PDF 修復公用程式(例如 qpdf --repair 或 File2File.app 修復工具)會以線性方式重新掃描檔案、重建物件字典,並重新產生新的 xref 表格。
PDF 檢視器無法載入文件,或在最後一頁當機。
根本原因: 下載不完整或磁碟寫入未完成,遺漏了「%%EOF」標記與結尾字典。
修復: 使用「tail -c 128 document.pdf」檢查檔案結尾。如果缺少 %%EOF,請檢查根目錄物件是否存在,並附加指向最高有效物件編號的人工 xref 表格。
嵌入字型算繪為無法辨識的符號、空白方塊(.notdef)或問號。
根本原因: 未嵌入的子集字型參照了檢視裝置上缺少的系統字型,或 ToUnicode CMap 表格損毀。
修復: 透過 Ghostscript(gs -o fixed.pdf -sDEVICE=pdfwrite -dEmbedAllFonts=true broken.pdf)重新嵌入缺少的字型子集,或是將文字元素轉換成向量曲線。
安全性分析與解析器攻擊向量
PDF 支援主動式指令碼、內嵌檔案與壓縮物件串流等功能,閱讀軟體必須安全地解析與處理這些功能。瀏覽器的 PDF 檢視器可能會使用沙箱來隔離文件處理過程。
已知攻擊向量
- 嵌入的 Acrobat JavaScript(JS API)會在開啟文件時執行任意程式碼或網路釣魚攻擊。
- 設定為執行外部系統二進位檔或 Shell 指令碼的啟動動作(/Launch)。
- 舊版 Type 1 與 TrueType 字型解析引擎中的字型算繪漏洞,會觸發緩衝區溢位。
- 透過惡意 URI 動作(/URI)或表單提交進行伺服器端請求偽造(SSRF)與 NTLM 雜湊憑證竊取。
防禦最佳實務: 切勿在啟用 Adobe Acrobat JavaScript 執行的情況下開啟不受信任的 PDF。若要在網頁上檢視,請一律透過瀏覽器的沙箱化 WebAssembly/PDF.js 引擎算繪,或將不受信任的 PDF 轉換為經過清理的 PDF/A-1b 文件。
歷史起源與里程碑
主要優勢與優點
- 旨在跨不同系統保留頁面版面,儘管外觀可能會隨字型、檢視器與列印設定而有所不同。
- 支援數位密碼學簽章、塗銷註解與 DRM 存取權限。
- 可包含向量圖形、字型與壓縮點陣串流;字型與其他資源不一定會內嵌。
技術限制與缺點
- 固定版面的頁面畫布,使得在小型智慧型手機上自動回應式重新排版相當困難。
- 複雜的內部物件串流階層若未進行壓縮與未參照物件清除,可能會導致檔案大小膨脹。
- 內嵌 JavaScript 與動態啟動動作功能呈現了廣泛的攻擊面。
有趣的技術冷知識
- 最初的 Camelot 專案論文設想從任何應用程式直接以電子方式將文件列印到任何顯示器上。
- 每個 PDF 檔案都以確切的字串「%%EOF」結尾,用以標記檔案結尾。
- 某些法院與封存組織指定 PDF/A 用於保存工作流程;具體要求因管轄區與機構而異。
常見技術問題
為什麼 PDF 頁面在螢幕和印表機上看起來可以很相似?
PDF 以固定的座標儲存頁面內容,這有助於保留版面配置。算繪外觀仍可能因字型嵌入、檢視器行為、色彩管理與印表機設定而異。
標準 PDF 與 PDF/A 有什麼區別?
PDF/A(ISO 19005)是專為長期封存設計的特殊子集。它嚴格禁止可能危及未來可讀性的功能,例如 JavaScript、外部字型連結、加密、聲音/影片嵌入以及相依於裝置的色彩空間。所有字型與色彩設定檔都必須 100% 嵌入。
現代文件中的 PDF 壓縮是如何運作的?
PDF 使用針對不同內容類型量身打造的多種獨立壓縮濾鏡。文字、向量指令和字型度量資料會使用 FlateDecode(zlib/deflate)進行壓縮。相片影像使用 DCTDecode(JPEG)或 JPXDecode(JPEG 2000),而二值單色掃描文字則使用 JBIG2 或 CCITT Fax Group 4 壓縮。
為什麼 PDF 檔案在刪除頁面或圖片後通常仍然很大?
修改 PDF 時,許多編輯器會執行「增量更新」:將新的物件串流與新的 xref 表格附加到檔案結尾,而不刪除舊物件,以便快速復原。若要實際縮減檔案大小,文件必須經過最佳化處理,以清除未參照的物件。
相關的 PDF 轉換對
將 PDF 的每一頁轉為 JPG 圖片,方便您發文、傳送聊天訊息或插入投影片中。頁面會以 150 dpi 算繪;多頁 PDF 會產生一個 ZIP 壓縮檔,每頁各含一張 JPG。
將 PDF 的每一頁儲存為無損 PNG 圖片,讓文字、表格和圖表保持清晰銳利。頁面會以 150 dpi 算繪;多頁 PDF 會產生一個 ZIP 壓縮檔,每頁各含一張 PNG。
將 PNG 螢幕截圖或圖表分享為保留像素與透明度的單頁 PDF。PDF 頁面是固定圖片,不是可編輯的 PNG 檔案。
將 JPEG 相片放入單一 PDF 頁面以便檢閱或列印。系統會嵌入其現有的圖片資料,但 PDF 不提供相片編輯控制項。
從 WebP 圖形製作單頁 PDF,適用於文件或審核流程。瀏覽器會將其重新繪製為圖片,因此不會保留 WebP 資料與動態效果。
將 SVG 標誌或插圖分享為單頁 PDF。其可縮放路徑會變成固定解析度的圖片,因此放大無法恢復向量細節。
將靜態 HEIC 相片轉為單頁 PDF 以供分享或填寫表單。該頁面使用 8 位元圖片資料,且不包含 HEIC 序列或 HDR 來源資料。
將 AVIF 網頁圖片放置於單一 PDF 頁面上以進行活動審核。它會繪製到標準畫布圖片上,因此 AVIF 編碼與 HDR 輔助資料會遺失。