C# 將HTML文檔、HTML字符串轉換為圖片

在.NET開發中,將HTML內容轉換為圖片的需求廣泛存在于報告生成、郵件內容存檔、網頁快照等場景。Free Spire.Doc for .NET作為一款免費的專業文檔處理庫,無需Microsoft Word依賴,即可輕松實現這一功能。本文將深入解析HTML文檔和字符串轉圖片兩種場景的轉換方案!

文章目錄

    • Free Spire.Doc 簡介
    • 場景1:通過C#將HTML文件轉換為PNG圖片(完整示例)
    • 場景2:通過C#將HTML字符串轉換為JPG圖片(動態內容處理)
    • 將HTML轉換為其他圖片格式
    • 結論

Free Spire.Doc 簡介

核心優勢:
? ? 100%免費:社區版可免費用于個人和商業用途(有頁數限制)
? 🚀 零依賴:無需安裝Microsoft Office
? 📁 高質量輸出:支持PNG/JPEG/BMP等主流格式
? ?? 簡單API,幾行代碼即可完成轉換

安裝:
通過NuGet安裝Free Spire.Doc

Install-Package FreeSpire.Doc

場景1:通過C#將HTML文件轉換為PNG圖片(完整示例)

以下是將本地 HTML 文檔轉換為 PNG 圖片的完整代碼示例:

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using System.Drawing.Imaging;namespace ConvertHtmlFileToPng
{class Program{static void Main(string[] args){// 將HTML文件加載到Document對象中Document document = new Document();document.LoadFromFile("示例.html", FileFormat.Html, XHTMLValidationType.None);// 將HTML文件轉換為圖片Image[] images = document.SaveToImages(ImageType.Bitmap);// 將圖片保存為PNG格式for (int index = 0; index < images.Length; index++){images[index].Save("圖片\\圖_{0}.png", ImageFormat.Png);}// 釋放資源document.Dispose();}}
}

代碼解析:

  • 加載文檔:使用 LoadFromFile 方法加載 HTML 文件,指定格式為 FileFormat.Html
  • 轉換處理:通過 SaveToImages() 方法將HTML文件轉換為圖片,轉換結果以 Image[] 數組形式返回,適合處理多頁文檔;
  • 圖片處理:使用 ImageFormat 指定輸出格式;
  • 資源管理:最后調用了 Dispose() 方法釋放文檔對象資源。

效果圖:
HTML文件轉圖片

場景2:通過C#將HTML字符串轉換為JPG圖片(動態內容處理)

如果需要將動態生成的 HTML 字符串(如從數據庫或 API 獲取的內容)轉換為圖片,可使用以下代碼:

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;namespace ConvertHtmlStringToPng
{class Program{static void Main(string[] args){// 創建HTML字符串(示例)string htmlString = @"<html><head><style>body { font-family: Arial, sans-serif; margin: 20px; }.title { color: #333; font-size: 24px; font-weight: bold; }.content { color: #666; margin-top: 10px; }</style></head><body><div class=""title"">HTML字符串轉換示例</div><div class=""content"">這是一段通過Free Spire.Doc轉換為圖片的HTML內容。</div></body></html>";// 創建Word文檔Document document = new Document();// 將Html字符串添加到Word中Paragraph paragraph = document.AddSection().AddParagraph();paragraph.AppendHTML(htmlString);// 將Html字符轉換為圖片(此處假設HTML內容為單頁,如需分頁可參考上文邏輯)Image images = document.SaveToImages(0, ImageType.Bitmap);images.Save("HTML字符串轉圖片.jpg", ImageFormat.Jpeg);// 釋放資源document.Dispose();}}
}

簡單示例圖:
HTML字符串轉圖片

注意事項:

  • HTML 格式規范:確保 HTML 字符串包含完整的 <html><head><body>等標簽,否則可能導致樣式解析失敗;
  • 樣式支持:Free Spire.Doc 支持大部分 CSS 樣式,但復雜動畫或 JavaScript 效果可能無法完全渲染(因其不依賴瀏覽器引擎);
  • 中文顯示:若 HTML 包含中文,需確保運行環境已安裝相應字體(或在 CSS 中指定通用字體如 font-family: ""Microsoft YaHei"", sans-serif;)。

將HTML轉換為其他圖片格式

若需將 HTML 轉換為 JPG、BMP、GIF 等其他圖片格式,只需修改 Image.Save 方法中的 ImageFormat 參數即可。

參考: https://learn.microsoft.com/en-us/dotnet/api/system.drawing.imaging.imageformat

結論

Free Spire.Doc for .NET 為.NET 開發者提供了簡單高效的 HTML 轉圖片的解決方案,無論是本地 HTML 文檔還是動態生成的 HTML 字符串,均可通過簡單代碼完成轉換。其免費版滿足基礎需求,如需去除頁數限制,體驗更多高級功能,則申請一個月試用授權完整體驗商業版。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907753.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【HTML-15.2】HTML表單按鈕全面指南:從基礎到高級實踐

表單按鈕是網頁交互的核心元素&#xff0c;作為用戶提交數據、觸發操作的主要途徑&#xff0c;其重要性不言而喻。本文將系統性地介紹HTML表單按鈕的各種類型、使用場景、最佳實踐以及高級技巧&#xff0c;幫助開發者構建更高效、更易用的表單交互體驗。 1. 基礎按鈕類型 1.1…

吳恩達MCP課程(4):connect_server_mcp_chatbot

目錄 完整代碼代碼解釋1. 導入和初始化2. 類型定義3. MCP_ChatBot 類初始化4. 查詢處理 (process_query)5. 服務器連接管理6. 核心特性總結 示例 完整代碼 原課程代碼是用Anthropic寫的&#xff0c;下面代碼是用OpenAI改寫的&#xff0c;模型則用阿里巴巴的模型做測試 .env 文…

C++內存學習

引入 在實例化對象時&#xff0c;不管是編譯器還是我們自己&#xff0c;會使用構造函數給成員變量一個合適的初始值。 但是經過構造函數之后&#xff0c;我們還不能將其稱為成員變量的初始化&#xff1a; 構造函數中的語句只能稱為賦初值&#xff0c;而不能稱作初始化 因為初…

MySQL 大戰 PostgreSQL

一、底層架構對比 ??維度????MySQL????PostgreSQL????存儲引擎??多引擎支持&#xff08;InnoDB、MyISAM等&#xff09;單一存儲引擎&#xff08;支持擴展如Zheap、Zedstore&#xff09;??事務實現??基于UNDO日志的MVCC基于堆表(Heap)的MVCC??鎖機制??…

基于FPGA的二叉決策樹cart算法verilog實現,訓練環節采用MATLAB仿真

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) MATLAB訓練結果 上述決策樹判決條件&#xff1a; 分類的決策樹1 if x21<17191.5 then node 2 elseif x21>17191…

【RAG】RAG綜述|一文了解RAG|從零開始(下)

文章目錄 5. RAG的架構5.1 Naive RAG5.2 Advanced RAG5.2.1 檢索前處理和數據索引技術5.2.2 知識分片技術5.2.3 分層索引5.2.4 檢索技術5.2.4.1 優化用戶查詢5.2.4.2 通過假想文檔嵌入修復查詢和文檔不對稱5.2.4.3 Routing5.2.4.5 自查詢檢索5.2.4.6 混合搜索5.2.4.7 圖檢索5.2…

山東大學軟件學院項目實訓-基于大模型的模擬面試系統-面試官和面試記錄的分享功能(2)

本文記錄在發布文章時&#xff0c;可以添加自己創建的面試官和面試記錄到文章中這一功能的實現。 前端 首先是在原本的界面的底部添加了兩個多選框&#xff08;后期需要美化調整&#xff09; 實現的代碼&#xff1a; <el-col style"margin-top: 1rem;"><e…

FPGA純verilog實現MIPI-DSI視頻編碼輸出,提供工程源碼和技術支持

目錄 1、前言工程概述免責聲明 2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目我這里已有的 MIPI 編解碼方案 3、設計思路框架工程設計原理框圖FPGA內部彩條RGB數據位寬轉換RGB數據緩存MIPI-DSI協議層編碼MIPI-DPHY物理層串化MIPI-LVDS顯示屏工程…

LXQt修改開始菜單高亮

開始菜單紅色高亮很難看 mkdir -p ~/.local/share/lxqt/palettes/ mkdir -p ~/.local/share/lxqt/themes/ cp /usr/share/lxqt/palettes/Dark ~/.local/share/lxqt/palettes/Darker cp -p /usr/share/lxqt/themes/dark ~/.local/share/lxqt/themes/darker lxqt-panel.qss L…

DeepSeek-R1-0528-Qwen3-8B 本地ollama離線運行使用和llamafactory lora微調

參考: https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B 量化版本: https://huggingface.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally 1、ollama運行 升級ollama版本到0.9.0 支持直接…

vue3 + WebSocket + Node 搭建前后端分離項目 開箱即用

[TOC](vue3 WebSocket Node 搭建前后端分離項目) 開箱即用 前言 top1&#xff1a;vue3.5搭建前端H5 top2&#xff1a;Node.js koa搭建后端服務接口 top3&#xff1a;WebSocket 長連接實現用戶在線聊天 top4&#xff1a;接口實現模塊化 Mysql 自定義 top5&#xff1a;文件上…

Vue 前端代碼規范實戰:ESLint v9、Prettier 與 Stylelint 集成指南與最佳實踐

&#x1f680; 作者主頁&#xff1a; 有來技術 &#x1f525; 開源項目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 倉庫主頁&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 歡迎點贊 &#x1f44d; 收藏 ?評論 …

docker docker-ce docker.io

Ubuntu安裝 ??更新軟件包列表?? 首先確保軟件包列表是最新的&#xff1a; sudo apt-get update 使用正確的卸載命令?? 替換 docker-engine 為 docker-ce 或 docker.io&#xff1a; sudo apt-get remove docker docker-ce docker.io containerd runc ??檢查已安裝的 Do…

C++ 初階 | 類和對象易錯知識點(下)

目錄 0.引言 1.初始化列表 2.static 靜態成員變量&#xff1a; 靜態成員函數&#xff1a; 3.友元函數 4.內部類 定義&#xff1a; 特點&#xff1a; 應用&#xff1a; 5.優化寫法 6.例題 求和12...n (不能用for/while/if/else等關鍵字) 7.總結 0.引言 今天&…

使用yocto搭建qemuarm64環境

環境 yocto下載 # 源碼下載 git clone git://git.yoctoproject.org/poky git reset --hard b223b6d533a6d617134c1c5bec8ed31657dd1268 構建 # 編譯鏡像 export MACHINE"qemuarm64" . oe-init-build-env bitbake core-image-full-cmdline 運行 # 跑虛擬機 export …

AWS WebRTC:獲取ICE服務地址(part 3):STUN服務和TURN服務的作用

STUN服務和TURN服務的作用&#xff1a; 服務全稱作用是否中繼流量適用場景STUNSession Traversal Utilities for NAT 協助設備發現自己的公網地址&#xff08;srflx candidate&#xff09; ? 不中繼&#xff0c;僅輔助NAT 穿透成功時使用TURNTraversal Using Relays around N…

分析XSSstrike源碼

#用于學習web安全自動化工具# 我能收獲什么&#xff1f; 1.XSS漏洞檢測機制 學習如何構造和發送XSS payload如何識別響應中的回顯&#xff0c;WAF&#xff0c;過濾規則等如何使用詞典&#xff0c;編碼策略&#xff0c;上下文探測等繞過過濾器 2.Python安全工具開發技巧 使…

npm run build 報錯:Some chunks are larger than 500 KB after minification

當我們的 Vue 項目太大&#xff0c;使用 npm run build 打包項目的時候&#xff0c;就有可能會遇到以下報錯&#xff1a; (!) Some chunks are larger than 500 kB after minification. Consider: - Using dynamic import() to code-split the application - Use build.rollup…

【LLM相關知識點】關于LLM項目實施流程的簡單整理(一)

【LLM相關知識點】關于LLM項目實施流程的簡單整理&#xff08;一&#xff09; 文章目錄 【LLM相關知識點】關于LLM項目實施流程的簡單整理&#xff08;一&#xff09;零、學習計劃梳理&#xff1a;結合ChatGPT從零開始學習LLM & 多模態大模型一、大模型相關應用場景和頭部企…

海上石油鉆井平臺人員安全管控解決方案

一、行業挑戰與需求分析 海上鉆井平臺面臨復雜環境風險&#xff08;如易燃易爆、金屬干擾、極端氣象&#xff09;和人員管理難題&#xff08;如定位模糊、應急響應延遲&#xff09;。傳統RFID或藍牙定位技術存在精度不足&#xff08;1-5米&#xff09;、抗干擾能力差等問題&am…