使用Python 實現 PDF 到 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 產品論壇上尋求技術支持。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章