HTML(超文本標記語言)是所有瀏覽器都支持的領先網頁文件格式。它經常用於將數據和信息顯示為網頁。在某些情況下,我們可能需要將 HTML 文檔轉換為圖像格式,例如 JPG、PNG、TIFF、BMP、GIF 等。在本文中,我們將學習如何在 Python 中將 HTML 轉換為 PNG、JPEG、BMP、GIF 或 TIFF 圖像。
- 將 HTML 轉換為圖像的 Python API
- 將 HTML 轉換為 JPG 圖片
- 將 HTML 轉換為 PNG 圖像
- HTML 到 BMP 的轉換
- 將 HTML 轉換為 GIF 圖片
- 將 HTML 轉換為 TIFF 圖像
- HTML 字符串到圖像的轉換
將 HTML 轉換為圖像的 Python API
為了將 HTML 轉換為圖像格式,我們將使用 Aspose.Words for Python API。它是在 Python 應用程序中以編程方式讀取和操作各種類型文檔的完整解決方案。它使我們能夠生成、修改、轉換、呈現和打印 Microsoft Word(DOC、DOCX、ODT)、PDF 和 Web(HTML、 Markdown) 文檔。
請在控制台中使用以下 pip 命令從 PyPI 安裝 API:
> pip install aspose-words
在 Python 中將 HTML 轉換為 JPG 圖像
我們可以按照以下步驟輕鬆地將 HTML 文檔轉換為 JPG 圖像:
- 首先,使用 Document 類加載 HTML 文件。
- 或者,使用 ImageSaveOptions 類對象指定圖像保存選項。
- 接下來,遍歷文檔中的所有頁面。
- 之後,使用 extractpages() 方法提取每個頁面。
- 最後,使用 save() 方法將頁面保存為 JPG。
以下代碼示例顯示瞭如何在 Python 中將 HTML 轉換為 JPG 圖像。
# 此代碼示例演示如何將 HTML 文檔轉換為 JPG 圖像。
import aspose.words as aw
# 加載現有的 Word 文檔
doc = aw.Document("C:\\Files\\sample.html")
# 指定圖像保存選項
# 將保存格式設置為 JPEG
imageOptions = aw.saving.ImageSaveOptions(aw.SaveFormat.JPEG)
# 將“JpegQuality”屬性設置為“10”以在呈現文檔時使用更強的壓縮。
# 這將減小文檔的文件大小,但圖像將顯示更明顯的壓縮偽影。
imageOptions.jpeg_quality = 10
# 更改水平分辨率。
# 這些屬性的默認值為 96.0,分辨率為 96dpi。
# 同樣,通過設置 vertical_resolution 來改變垂直分辨率
imageOptions.horizontal_resolution = 72
# 將頁面保存為 JPG
for page in range(0, doc.page_count):
extractedPage = doc.extract_pages(page, 1)
extractedPage.save(f"C:\\Files\\Images\\Page_{page + 1}.jpg", imageOptions)
在 Python 中將 HTML 轉換為 PNG 圖像
我們可以按照以下步驟將 HTML 文檔轉換為 PNG 圖像:
- 首先,使用 Document 類加載 HTML 文件。
- 接下來,創建 ImageSaveOptions 類的一個實例。
- 然後,指定圖像亮度、圖像對比度等圖像保存選項。
- 接下來,遍歷文檔中的所有頁面。
- 之後,使用 extractpages() 方法提取每個頁面。
- 最後,使用 save() 方法將頁面保存為 JPG。
以下代碼示例顯示瞭如何在 Python 中將 HTML 轉換為 PNG 圖像。
# 此代碼示例演示如何將 HTML 文檔轉換為 PNG 圖像。
import aspose.words as aw
# 加載現有的 Word 文檔
doc = aw.Document("C:\\Files\\sample.html")
# 指定圖像保存選項
# 設置保存格式為PNG
imageOptions = aw.saving.ImageSaveOptions(aw.SaveFormat.PNG)
# 更改圖像的亮度和對比度。
# 兩者都在 0-1 範圍內,默認情況下為 0.5。
imageOptions.image_brightness = 0.3
imageOptions.image_contrast = 0.7
# 將頁面另存為 PNG
for page in range(0, doc.page_count):
extractedPage = doc.extract_pages(page, 1)
extractedPage.save(f"C:\\Files\\Images\\Page_{page + 1}.png", imageOptions)
在 Python 中將 HTML 轉換為 BMP
我們可以按照以下步驟將 HTML 文檔轉換為 BMP 圖像:
- 首先,使用 Document 類加載 HTML 文件。
- 接下來,遍歷文檔中的所有頁面。
- 之後,使用 extractpages() 方法提取每個頁面。
- 最後,使用 save() 方法將頁面保存為 JPG。
以下代碼示例顯示瞭如何在 Python 中將 HTML 轉換為 BMP 圖像。
# 此代碼示例演示如何將 HTML 文檔轉換為 BMP 圖像。
import aspose.words as aw
# 加載現有的 Word 文檔
doc = aw.Document("C:\\Files\\sample.html")
# 將頁面保存為 BMP
for page in range(0, doc.page_count):
extractedPage = doc.extract_pages(page, 1)
extractedPage.save(f"C:\\Files\\Images\\Page_{page + 1}.bmp")
在 Python 中將 HTML 轉換為 GIF 圖像
同樣,我們也可以按照前面提到的步驟將HTML文檔轉換為GIF圖片。但是,我們只需要在步驟 # 4 中將圖像保存為擴展名為“.gif”的 GIF。
以下代碼示例顯示瞭如何在 Python 中將 HTML 轉換為 GIF 圖像。
# 此代碼示例演示如何將 HTML 文檔轉換為 GIF 圖像。
import aspose.words as aw
# 加載現有的 Word 文檔
doc = aw.Document("C:\\Files\\sample.html")
# 將頁面另存為 GIF
for page in range(0, doc.page_count):
extractedPage = doc.extract_pages(page, 1)
extractedPage.save(f"C:\\Files\\Images\\Page_{page + 1}.gif")
在 Python 中將 HTML 轉換為 TIFF 圖像
我們還可以按照以下步驟將 HTML 文檔轉換為 TIFF 圖像:
- 使用 Document 類加載 HTML 文件。
- 使用 save() 方法將文檔保存為 TIFF。
以下代碼示例顯示瞭如何在 Python 中將 HTML 文檔轉換為 TIFF 圖像。
# 此代碼示例演示如何將 HTML 文檔轉換為 TIFF 圖像。
import aspose.words as aw
# 加載現有的 Word 文檔
doc = aw.Document("C:\\Files\\sample.html")
# 將文檔另存為 TIFF
doc.save(f"C:\\Files\\Images\\Output.tiff")
在 Python 中將 HTML 字符串轉換為圖像
我們可以按照以下步驟從 HTML 字符串動態生成圖像文件:
- 首先,創建一個 Document 類的實例。
- 接下來,創建 DocumentBuilder 類的一個實例。
- 之後,使用 inserthtml() 方法插入 HTML 字符串。
- 最後,使用 save() 方法將文檔保存為 JPG。
以下代碼示例顯示瞭如何在 Python 中將 HTML 字符串轉換為 JPG 圖像。
# 此代碼示例演示如何將 HTML 字符串轉換為圖像。
import aspose.words as aw
# 創建文檔對象
doc = aw.Document()
# 創建文檔構建器對象
builder = aw.DocumentBuilder(doc)
# 插入 HTML
builder.insert_html("<ul>\r\n" +
"<li>Item1</li>\r\n" +
"<li>Item2</li>\r\n" +
"</ul>")
# 將文檔另存為 JPG
doc.save(f"C:\\Files\\Output.jpg")
獲得免費許可證
您可以獲得免費的臨時許可證 試用 Aspose.Words for Python,而沒有評估限制。
結論
在本文中,我們學習瞭如何:
- 以編程方式將 HTML 文檔轉換為圖像;
- 將 HTML 文件的內容轉換為 PNG、JPEG、BMP、GIF 或 TIFF 圖像;
- 生成 HTML 文檔並使用 Python 將其轉換為圖像。
此外,您可以使用 文檔 了解有關 API 的更多信息。如有任何歧義,請隨時在論壇上與我們聯繫。