【C#】Html轉Pdf,Spire和iTextSharp結合,.net framework 4.8

🌹歡迎來到《小5講堂》🌹
🌹這是《C#》系列文章,每篇文章將以博主理解的角度展開講解。🌹
🌹溫馨提示:博主能力有限,理解水平有限,若有不對之處望指正!🌹

在這里插入圖片描述

目錄

  • 前言
  • 安裝插件
    • iTextSharp - 5.5.13.4
    • FreeSpire.PDF - 10.2.0
    • QT插件
  • 完整代碼
  • 實際應用場景
    • HTML轉PDF
    • PDF追加文本
  • 相關文章

前言

當你感到迷茫的時候,適當給自己一些工作上或者生活上的事情做一些減法。
在整理自己一些在線文檔時,發現當時記錄一些代碼的草稿技術文章。
因此,簡單整理發一篇文章分享下當時的過程,希望能給小伙伴帶來點靈感。

安裝插件

打開NuGet包管理器,安裝下面兩個插件,選擇合適的版本安裝。

iTextSharp - 5.5.13.4

在這里插入圖片描述

FreeSpire.PDF - 10.2.0

在這里插入圖片描述

QT插件

選擇合適版本下載
Windows x86
Windows x64
Linux x64
Mac x64

完整代碼

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.IO;
using Spire.Pdf.Graphics;
using Spire.Additions.Qt;
using Spire.Pdf;private void TestHtmlToPdf()
{try{List<string> sourceFiles = new List<string>();// 輸出 - 文件夾string baseDirectory = $"{AppDomain.CurrentDomain.BaseDirectory}";string fileName = $"{Guid.NewGuid()}.pdf";string outputPath = $"{baseDirectory}/{fileName}";if (true){string url = $@"https://www.csdn.net";// string htmlContent = HttpRequest.SendGet(url, "");if (!System.IO.File.Exists(outputPath)){// 如果目錄不存在,則創建目錄if (!Directory.Exists(baseDirectory)){Directory.CreateDirectory(baseDirectory);}//指定插件路徑 - Qt插件解壓到E盤(根據自己盤來解壓)string pluginPath = @"E:\plugins";//設置插件路徑HtmlConverter.PluginPath = pluginPath;//將HTML網頁轉換為PDFHtmlConverter.Convert(url, outputPath, true, 100000, new Size(1080, 610), new PdfMargins(0));}sourceFiles.Add(outputPath);}// 操作pdf - 追加文本string text = "CSDN博客博主 - 全棧小5";if (true){// 加載現有的 PDF 文件Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument();doc.LoadFromFile(outputPath);// 獲取第一頁PdfPageBase page = doc.Pages[0];// 創建一個畫刷和字體PdfSolidBrush brush = new PdfSolidBrush(Color.Blue);Font font = new Font("宋體", 18f); // 解決中文亂碼問題PdfTrueTypeFont pdfTrueTypeFont = new PdfTrueTypeFont(font, true); // true表示使用Unicode編碼// 在指定位置追加文本page.Canvas.DrawString($"{text}", pdfTrueTypeFont, brush, new PointF(200, 20));// 保存修改后的 PDF 文件doc.SaveToFile(outputPath, FileFormat.PDF);// 釋放資源doc.Close();}}catch (Exception ex){}
}

在這里插入圖片描述

實際應用場景

HTML轉PDF

  1. 網頁內容存檔:將網頁內容轉換為PDF格式進行長期保存
  2. 電子報告生成:自動將數據分析結果(HTML格式)轉換為可打印的PDF報告
  3. 電子發票/收據:將在線生成的發票HTML模板轉換為PDF發送給客戶
  4. 合同文檔生成:將在線填寫的合同表單(HTML)轉換為正式PDF合同
  5. 教育材料:將在線課程內容轉換為PDF供學生下載
  6. 產品目錄:將網站上的產品列表轉換為PDF目錄
  7. 簡歷生成:將在線填寫的簡歷信息轉換為PDF格式
  8. 新聞簡報:將每日新聞網頁內容轉換為PDF簡報

PDF追加文本

  1. 合同簽署:在已有合同PDF上追加簽名和日期信息
  2. 批注和注釋:在技術文檔或學術論文PDF上添加評論
  3. 水印添加:在PDF文檔上追加"機密"或"草稿"等水印文本
  4. 文檔編號:在生成的PDF上追加唯一的文檔編號
  5. 頁眉頁腳:為現有PDF文檔追加頁眉頁腳信息
  6. 自動填表:在PDF表單上追加填寫的數據
  7. 翻譯文檔:在原文PDF上追加翻譯文本
  8. 法律文件:在判決書等法律文件上追加法官意見
  9. 醫療記錄:在患者病歷PDF上追加醫生診斷意見
  10. 工程圖紙:在技術圖紙PDF上追加修訂說明

相關文章

【C#】Html轉Pdf,Spire和iTextSharp結合,.net framework 4.8

【C#】事務(進程 ID 64)與另一個進程被死鎖在鎖資源上,并且已被選作死鎖犧牲品。請重新運行該事務。不能在具有唯一索引“XXX_Index”的對象“dbo.Test”中插入重復鍵的行。

【C#】使用DeepSeek幫助評估數據庫性能問題,C# 使用定時任務,每隔一分鐘移除一次表,再重新創建表,和往新創建的表追加5萬多條記錄

【C#】合理使用DeepSeek相關AI應用為我們提供強有力的開發工具,在.net core 6.0框架下使用JsonNode動態解析json字符串,如何正確使用單問號和雙問號做好空值處理

【C#】已經實體類和動態實體類的反射使用方法,兩分鐘回顧,碼上就懂

【C#】使用vue3的axios發起get和post請求.net framework部署的API顯示跨域

【C#】.net core 6.0 webapi 使用core版本的NPOI的Excel讀取數據以及保存數據

【C#】pdf按頁分割文件,以及分頁合并,效果還不錯,你值得擁有

【C#】未能加載文件或程序集“CefSharp.Core.Runtime.dll”或它的某一個依賴項。找不到指定的模塊。

【C#】.net core 6.0 在program時間格式統一json格式化,并列舉program默認寫法和簡化寫法

【C#】.net core 6.0 ApiController,API控制器方法,API接口以實體類作為接收參數應該注意的點

【C#】 SortedDictionary,查找字典中是否存在給定的關鍵字

【C#】.net core 6.0 MVC返回JsonResult顯示API接口返回值不可被JSON反序列化

【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件詳細說明

【C#】使用代碼實現龍年春晚撲克牌魔術(守歲共此時),代碼實現篇

【C#】使用代碼實現龍年春晚撲克牌魔術(守歲共此時),流程描述篇

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

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

相關文章

KrillinAI:視頻跨語言傳播的一站式AI解決方案

引言 在全球內容創作領域&#xff0c;跨語言傳播一直是內容創作者面臨的巨大挑戰。傳統的視頻本地化流程繁瑣&#xff0c;涉及多個環節和工具&#xff0c;不僅耗時耗力&#xff0c;還常常面臨質量不穩定的問題。隨著大語言模型(LLM)技術的迅猛發展&#xff0c;一款名為Krillin…

AllDup:高效管理重復文件

AllDup 是一款免費高效的重復文件管理工具&#xff0c;專為 Windows 系統設計&#xff0c;支持快速掃描并清理冗余文件&#xff0c;優化存儲空間。它通過智能算法識別重復內容&#xff0c;覆蓋文本、圖片、音頻、視頻等常見文件類型?。軟件提供便攜版與安裝版&#xff0c;無需…

C++進程間通信開發實戰:高效解決項目中的IPC問題

C進程間通信開發實戰&#xff1a;高效解決項目中的IPC問題 在復雜的軟件項目中&#xff0c;進程間通信&#xff08;Inter-Process Communication, IPC&#xff09;是實現模塊化、提高系統性能與可靠性的關鍵技術之一。C作為一門高性能的編程語言&#xff0c;廣泛應用于需要高效…

用 Depcheck 去除Vue項目沒有用到的依賴

1. 安裝 Depcheck 插件 npm i -g depcheck 2. 運行命令&#xff0c;查看為用到的依賴 npx depcheck depcheck 3. 查詢到所有為用到的依賴 E:\Project>depcheck Unused dependencies * riophae/vue-treeselect * codemirror * connect * qs * sortablejs * vue-count-t…

猿輔導集團推首個教育AI范式小猿AI 聚焦家校應用場景發布3款新品

近兩年&#xff0c;通用大模型呈爆發式發展&#xff0c;垂類AI遭遇“技術平替”危機。 4月15日&#xff0c;猿輔導集團在“小猿AI暨智能硬件戰略發布會”上&#xff0c;正式推出首個教育AI范式——“小猿AI”&#xff0c;并發布覆蓋家校兩端的“軟件應用智能終端通識課程”三位…

英語單詞 list 11

前言 這一個 list 是一些簡單的單詞。感覺這個瀏覽單詞的方法比較低效&#xff0c;所以準備每天最多看一個 list &#xff0c;真要提升英語水平&#xff0c;感覺還是得直接做閱讀理解題。就像我們接觸中文閱讀材料一樣&#xff0c;當然光知道這個表面意思還不夠&#xff0c;還…

BufferedReader 終極解析與記憶指南

BufferedReader 終極解析與記憶指南 一、核心本質 BufferedReader 是 Java 提供的緩沖字符輸入流&#xff0c;繼承自 Reader&#xff0c;通過內存緩沖和行讀取功能極大提升文本讀取效率。 核心特性速查表 特性說明繼承鏈Reader → BufferedReader緩沖機制默認 8KB 字符緩沖…

樹莓派超全系列教程文檔--(26)在 Raspberry Pi 上配置熱點

在 Raspberry Pi 上配置熱點 在 Raspberry Pi 上配置熱點啟用熱點禁用熱點使用 Raspberry Pi 作為網橋 文章來源&#xff1a; http://raspberry.dns8844.cn/documentation 原文網址 在 Raspberry Pi 上配置熱點 Raspberry Pi 可以使用無線模塊托管自己的無線網絡。如果您通過…

[硬件]單片機下載電路講解-以ch340為例

首先我們明確要實現的效果&#xff1a; 實現 CH340 通過 Type - C 接口下載程序到單片機 1、前置知識 首先我們要知道 ch340 和typec的作用分別是什么 CH340 作用(usb-ttl) CH340 是一種 USB 轉串口芯片 。其主要作用是實現 USB 總線與異步串行接口之間的轉換&#xff0c;充當 …

linux入門六:Linux Shell 編程

一、Shell 概述 1. 什么是 Shell&#xff1f; Shell 是 Linux 系統中用戶與內核之間的橋梁&#xff0c;作為 命令解析器&#xff0c;它負責將用戶輸入的文本命令轉換為計算機可執行的機器指令。 本質&#xff1a;Shell 是一個程序&#xff08;如常見的 Bash、Zsh&#xff09…

用shell腳本實現自動監控并封禁連接數超過閾值的IP

寫一個 shell 腳本&#xff0c;創建腳本文件 /usr/local/bin/check_conn.sh #!/bin/bash if [[ $EUID -ne 0 ]]; thenecho "This script must be run as root." >&2exit 1 fi # 連接數閾值 THRESHOLD50# 白名單 IP&#xff08;空格分隔&#xff09; WHITELIS…

VS 中Git 中本地提交完成,沒有推送,修改的內容如何還原

在 Visual Studio 中撤銷本地提交但未推送的修改&#xff0c;可以通過以下方法實現&#xff1a; 一、保留修改內容&#xff08;僅撤銷提交記錄&#xff09; 使用 git reset --soft 在 VS 的 Git 終端中執行&#xff1a; git reset --soft HEAD~1作用&#xff1a;撤銷最后一次提…

qt中的正則表達式

問題&#xff1a; 1.在文本中把dog替換成cat&#xff0c;但可能會把dog1替換成cat1&#xff0c;如果原本不想替換dog1&#xff0c;就會出現問題 2文本中想獲取某種以.txt為結尾的多有文本&#xff0c;普通的不能使用 3如果需要找到在不同的系統中尋找換行符&#xff0c;可以…

Linux命令-vim編輯

用vi或vim命令進入vim編輯器。 基礎: u 撤銷上一次操作。x剪切當前光標所在處的字符。yy復制當前行。dd剪切當前行。p粘貼剪貼板內容到光標下方。i切換到輸入模式&#xff0c;在光標當前位置開始輸入文本。:wq保存并退出Vim 編輯器。:q!不保存強制退出Vim 編輯器。 拓展: w光…

VS 基于git工程編譯版本自動添加版本號

目錄 概要 實現方案 概要 最近在用visual Studio 開發MFC項目時&#xff0c;需要在release版本編譯后的exe文件自動追加版本信息。 由于我們用的git工程管理&#xff0c;即需要基于最新的git 提交來打版本。 比如&#xff1a; MFCApplication_V1.0.2_9.exe 由于git 提交信…

nginx入門,部署靜態資源,反向代理,負載均衡使用

Nginx在linux上部署靜態資源 概念介紹 Nginx可以作為靜態web服務器來部署靜態資源。這里所說的靜態資源是指在服務端真實存在&#xff0c;并且能夠直接展示的一些文件&#xff0c;比如常見的html頁面、css文件、js文件、圖片、視頻等資源。 相對于Tomcat&#xff0c;Nginx處理…

【字節跳動AI論文】Seaweed-7B:視頻生成基礎模型的高成本效益培訓

摘要&#xff1a;本技術報告介紹了一種經濟有效的視頻生成基礎模型訓練策略。 我們提出了一種中等規模的研究模型&#xff0c;大約有70億個參數&#xff08;7B&#xff09;&#xff0c;稱為Seaweed-7B&#xff0c;使用665,000個H100 GPU小時從頭開始訓練。 盡管使用適度的計算資…

Java單例模式:實現全局唯一對象的藝術

精心整理了最新的面試資料和簡歷模板&#xff0c;有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 一、什么是單例模式&#xff1f; 單例模式&#xff08;Singleton Pattern&#xff09;是一種創建型設計模式&#xff0c;確保一個類只有一個實例&#xff0c…

Oracle 復制表結構(含索引、主鍵)操作指南

Oracle 復制表結構&#xff08;含索引、主鍵&#xff09;操作指南 1. 復制基礎表結構 -- 創建空表結構&#xff08;不復制數據&#xff09; CREATE TABLE new_table AS SELECT * FROM old_table WHERE 10;2. 復制主鍵約束 -- 查詢原表主鍵信息 SELECT constraint_name, co…

React 更新state中的對象

更新 state 中的對象 state 中可以保存任意類型的 JavaScript 值&#xff0c;包括對象。但是&#xff0c;你不應該直接修改存放在 React state 中的對象。相反&#xff0c;當你想要更新一個對象時&#xff0c;你需要創建一個新的對象&#xff08;或者將其拷貝一份&#xff09;…