PDF 文件是共用和分發文檔的常用選擇,但提取和再利用 PDF 文件中的內容可能會非常麻煩。而利用 Python 將 PDF 文件轉換為 HTML 是解決此問題的理想方案之一,這樣做可以增強文檔可訪問性,使文檔可搜索,同時增強文檔在不同場景中的實用性。此外,HTML 格式使得搜索引擎能夠對內容進行索 ...
PDF 文件是共用和分發文檔的常用選擇,但提取和再利用 PDF 文件中的內容可能會非常麻煩。而利用 Python 將 PDF 文件轉換為 HTML 是解決此問題的理想方案之一,這樣做可以增強文檔可訪問性,使文檔可搜索,同時增強文檔在不同場景中的實用性。此外,HTML 格式使得搜索引擎能夠對內容進行索引,從而更有可能在網路上被髮現。藉助 Python 的靈活性和易用性,無論是初學者還是有經驗的開發人員都可以輕鬆高效地使用 Python 來將 PDF 轉換為 HTML。
本文重點介紹如何在 Python 程式中將 PDF 轉換為 HTML,主要包括以下內容:
- 使用Python 將 PDF 轉換為 HTML 方法概覽
- 使用 Python 代碼將 PDF 轉換為單個 HTML 文件
- 使用 Python 將 PDF 轉換為不嵌入圖像的 HTML
- 使用 Python 將 PDF 轉換為多個 HTML 文件
本文介紹的方法使用了 Spire.PDF for Python 工具,可以從官網下載,也可以通過 PyPI 進行安裝:
pip install Spire.PDF
Python PDF 轉 HTML 方法概覽
在 Spire.PDF for Python 中,PdfDocument 類表示一個 PDF 文檔。我們可以使用該類下的 LoadFromFile() 方法載入 PDF 文件,然後使用 SaveToFile() 方法將文檔保存為其他格式,如 HTML,從而輕鬆實現從 PDF 到 HTML 的轉換。
此外,該 API 還提供了 PdfDocument.ConvertOptions 屬性下的 SetConvertHtmlOptions() 方法,用於在轉換過程中設置轉換選項。以下是可以傳遞給該方法的參數,用於設置最大頁數、SVG 嵌入選項、圖像嵌入選項和 SVG 質量選項:
- useEmbeddedSvg(bool):當設置為 True 時,允許在轉換後的 HTML 文件中嵌入 SVG。生成的 HTML 文件將包含 PDF 文檔中的所有元素,包括圖像,都在一個 HTML 文件中。
- useEmbeddedImg(bool):當設置為 True 時,允許在轉換後的 HTML 文件中嵌入圖像。此參數僅在 useEmbeddedSvg 設置為 False 時起作用。
- maxPageOneFile(int):設置單個 HTML 文件中包含的最大頁數。如果 PDF 的頁數超過指定的數字,將生成多個 HTML 文件,每個文件包含部分頁數。
- useHighQualityEmbeddedSvg(bool):當設置為 True 時,在 HTML 轉換過程中確保使用高質量的嵌入 SVG 圖像。
使用 Python 將 PDF 轉換為單個 HTML 文件
以下代碼示例展示瞭如何直接使用 Python 將 PDF 轉換為 HTML,不設置任何轉換選項。在這種情況下,我們只需要使用 LoadFromFile 方法載入 PDF 文件,並使用 SaveToFile 方法將其保存為 HTML 文件。轉換後的 HTML 文件將是一個包含嵌入圖像和其他元素的單個 HTML 文件。
from spire.pdf.common import * from spire.pdf import * # 創建一個PdfDocument類的對象 doc = PdfDocument() # 載入一個PDF文檔 doc.LoadFromFile("示例.pdf") # 將文檔轉換為HTML doc.SaveToFile("output/HTML/PDF轉HTML.html", FileFormat.HTML) doc.Close()
轉換效果:
使用 Python 將 PDF 轉換為不嵌入圖像的 HTML
通過將 useEmbeddedSvg 參數設置為 False,我們可以將 PDF 文檔轉換為不嵌入圖像等信息的單 HTML 文件,文檔中的圖像和 CSS 文件與 HTML 分離並存儲在一個文件夾中。這樣可以方便對轉換後的 HTML 文件進行進一步編輯,以及對圖像進行其他操作。
from spire.pdf.common import * from spire.pdf import * # 創建一個PdfDocument類的對象 doc = PdfDocument() # 載入一個PDF文檔 doc.LoadFromFile("示例.pdf") # 禁用SVG嵌入 doc.ConvertOptions.SetPdfToHtmlOptions(False) # 將文檔轉換為HTML doc.SaveToFile("output/HTML/PDF轉不嵌入SVG的HTML.html", FileFormat.HTML) doc.Close()
轉換結果:
使用 Python 將 PDF 轉換為多個 HTML 文件
在 useEmbeddedSvg 設置為 False 的前提下,SetPdfToHtmlOptions 方法允許使用 maxPageOneFile(int) 參數確定每個轉換後的 HTML 文件中包含的最大頁數。此功能可實現將 PDF 文檔在轉換過程中拆分成多個文件。例如,將該參數設置為 1 將使每個頁面被轉換為一個單獨的 HTML 文件。
from spire.pdf.common import * from spire.pdf import * # 創建一個PdfDocument類的對象 doc = PdfDocument() # 載入一個PDF文檔 doc.LoadFromFile("示例.pdf") # 禁用SVG嵌入 doc.ConvertOptions.SetPdfToHtmlOptions(False, False, 1, False) # 將文檔轉換為HTML doc.SaveToFile("output/HTML/PDF轉多個HTML.html", FileFormat.HTML) doc.Close()
轉換結果:
總結
本文演示瞭如何使用 Python 將 PDF 轉換為 HTML,並提供了多種轉換選項,例如轉換為單個 HTML 文件、將 HTML 文件與圖像分離以及在轉換過程中拆分 PDF 文檔。藉助 Spire.PDF for Python,用戶可以使用簡單高效的方法進行 Python 中的 PDF 到 HTML 轉換,並支持靈活的自定義選項。
如果在使用該 API 進行 PDF 到 HTML 轉換時遇到任何問題,用戶可以在 Spire 產品論壇上尋求技術支持。