最初のステップは、HTML を画像に変換することです。


public partial class Form1 : Form {public Form1() { InitializeComponent(); } WebBrowser webBrowser = null;public void ConvertToImg() { webBrowser = new WebBrowser();//是否显式滚动条webBrowser.ScrollBarsEnabled = false;//加载HTML页面的地址webBrowser.Navigate(""); //页面加载完成执行事件webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); }private void webBrowser_DocumentCompleted(object sender, EventArgs e)//这个就是当网页载入完毕后要进行的操作 {//获取解析后HTML的大小System.Drawing.Rectangle rectangle = webBrowser.Document.Body.ScrollRectangle;int width = rectangle.Width;int height = rectangle.Height;//设置解析后HTML的可视区域webBrowser.Width = width; webBrowser.Height = height; Bitmap bitmap = new System.Drawing.Bitmap(width, height); webBrowser.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, width, height));//设置图片文件保存路径和图片格式,格式可以自定义string filePath = AppDomain.CurrentDomain.BaseDirectory + "../../SaveFIle/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png"; bitmap.Save(filePath, System.Drawing.Imaging.ImageFormat.Png); }private void button1_Click(object sender, EventArgs e) { ConvertToImg(); } }
上記の方法は、指定されたURLアドレスのHTMLを解析して画像に変換するものです。もちろん、一部の HTML タグを直接記述することもできます。次のように:


public partial class Form1 : Form {public Form1() { InitializeComponent(); } WebBrowser webBrowser = null;public void ConvertToImg() {string html = "<div><table> <tr> <th>字段1</th> <th>字段2</th> <th>字段3</th> </tr> <tr> <td>小明</td> <td>22</td> <td>185</td> </tr> <tr> <td>小青</td> <td>21</td> <td>170</td> </tr> </table></div>"; webBrowser = new WebBrowser();//是否显式滚动条webBrowser.ScrollBarsEnabled = false;//加载 htmlwebBrowser.DocumentText = html; //页面加载完成执行事件webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); }private void webBrowser_DocumentCompleted(object sender, EventArgs e)//这个就是当网页载入完毕后要进行的操作 {//获取解析后HTML的大小System.Drawing.Rectangle rectangle = webBrowser.Document.Body.ScrollRectangle;int width = rectangle.Width;int height = rectangle.Height;//设置解析后HTML的可视区域webBrowser.Width = width; webBrowser.Height = height; Bitmap bitmap = new System.Drawing.Bitmap(width, height); webBrowser.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, width, height));//设置图片文件保存路径和图片格式,格式可以自定义string filePath = AppDomain.CurrentDomain.BaseDirectory + "../../SaveFIle/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png"; bitmap.Save(filePath, System.Drawing.Imaging.ImageFormat.Png); }private void button1_Click(object sender, EventArgs e) { ConvertToImg(); } }
次に、画像を PDF に変換します。ここでは、iTextSharp.dll コンポーネントを使用する必要があります。


public partial class Form1 : Form {public Form1() { InitializeComponent(); } WebBrowser webBrowser = null;public void ConvertToImg() {string html = "<div><table> <tr> <th>字段1</th> <th>字段2</th> <th>字段3</th> </tr> <tr> <td>小明</td> <td>22</td> <td>185</td> </tr> <tr> <td>小青</td> <td>21</td> <td>170</td> </tr> </table></div>"; webBrowser = new WebBrowser();//是否显式滚动条webBrowser.ScrollBarsEnabled = false;//加载 htmlwebBrowser.DocumentText = html; //页面加载完成执行事件webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); }private void webBrowser_DocumentCompleted(object sender, EventArgs e)//这个就是当网页载入完毕后要进行的操作 {//获取解析后HTML的大小System.Drawing.Rectangle rectangle = webBrowser.Document.Body.ScrollRectangle;int width = rectangle.Width;int height = rectangle.Height;//设置解析后HTML的可视区域webBrowser.Width = width; webBrowser.Height = height; Bitmap bitmap = new System.Drawing.Bitmap(width, height); webBrowser.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, width, height));//设置图片文件保存路径和图片格式,格式可以自定义string filePath = AppDomain.CurrentDomain.BaseDirectory + "../../SaveFIle/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png"; bitmap.Save(filePath, System.Drawing.Imaging.ImageFormat.Png);//创建PDFFileStream fileStream = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "../../SaveFIle/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".pdf", FileMode.Create);byte[] result = CreatePDF(bitmap, width, height); fileStream.Write(result, 0, result.Length); fileStream.Close(); fileStream.Dispose(); }private void button1_Click(object sender, EventArgs e) { ConvertToImg(); }public byte[] CreatePDF(Bitmap bitmap, int width, int height) {using (MemoryStream ms = new MemoryStream()) { Document doc = new Document(new iTextSharp.text.Rectangle(0, 0, width, height), 3, 3, 3, 3); // 左右上下PdfWriter writer = PdfWriter.GetInstance(doc, ms); writer.CloseStream = false; doc.Open(); iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap, System.Drawing.Imaging.ImageFormat.Png); img.ScalePercent(100); // 放缩比例doc.Add(img); // 添加图片对像 doc.Close();return ms.ToArray(); } } }
ただし、画像を生成してからPDFに変換するとピクセルが失われるため、画像よりも少しぼやけて見えます。
もう 1 つの方法は PDF を直接生成する方法で、ABCpdf をインストールする必要があります。ただし、これは有料です。 。 。


public partial class Form1 : Form {public Form1() { InitializeComponent(); }public void ConvertToPDF() {string html = "<div><table> <tr> <th>字段1</th> <th>字段2</th> <th>字段3</th> </tr> <tr> <td>小明</td> <td>22</td> <td>185</td> </tr> <tr> <td>小青</td> <td>21</td> <td>170</td> </tr> </table></div>";//创建一个Doc对象Doc doc = new Doc();//Rect默认是文档整个页面大小,这里的Inset表示将Rect左右留出15的空白,上下留出20的空白doc.Rect.Inset(15, 20);//直接设置htmlint docID = doc.AddHtml(html);//设置URL//int docID = doc.AddImageUrl("");//设置字体doc.AddFont("Arial");while (true) {//判断是否还有内容if (!doc.Chainable(docID)) {break; }//如果还有内容就添加一页doc.Page = doc.AddPage();//根据ID添加内容并返回页面上该内容对应的新IDdocID = doc.AddImageToChain(docID); }string filePath = AppDomain.CurrentDomain.BaseDirectory + "../../SaveFIle/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".pdf"; doc.Save(filePath); doc.Clear(); doc.Dispose(); }private void button1_Click(object sender, EventArgs e) { ConvertToPDF(); } }
以上がC# で HTML を画像または PDF に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

C#はプログラミング言語であり、.NETはソフトウェアフレームワークです。 1.C#はMicrosoftによって開発されており、マルチプラットフォーム開発に適しています。 2..NETは、クラスライブラリとランタイム環境を提供し、多言語をサポートします。 2つは協力して最新のアプリケーションを構築します。

C#.NETは、C#言語と.NETフレームワークの利点を組み合わせた強力な開発プラットフォームです。 1)エンタープライズアプリケーション、Web開発、ゲーム開発、モバイルアプリケーション開発で広く使用されています。 2)C#コードは中間言語にコンパイルされ、.NETランタイム環境によって実行され、ガベージコレクション、タイプの安全性、LINQクエリをサポートします。 3)使用の例には、基本的なコンソール出力と高度なLINQクエリが含まれます。 4)空の参照やタイプ変換エラーなどの一般的なエラーは、デバッガーとロギングを通じて解決できます。 5)パフォーマンスの最適化の提案には、非同期プログラミングとLINQクエリの最適化が含まれます。 6)競争にもかかわらず、C#.NETは継続的なイノベーションを通じて重要な地位を維持しています。

C#.NETの将来の傾向は、主にクラウドコンピューティング、マイクロサービス、AIおよび機械学習統合、およびクロスプラットフォーム開発の3つの側面に焦点を当てています。 1)クラウドコンピューティングとマイクロサービス:C#.NETは、Azureプラットフォームを介してクラウド環境のパフォーマンスを最適化し、効率的なマイクロサービスアーキテクチャの構築をサポートします。 2)AIと機械学習の統合:ML.NETライブラリの助けを借りて、C#開発者はアプリケーションに機械学習モデルを埋め込み、インテリジェントアプリケーションの開発を促進できます。 3)クロスプラットフォーム開発:.NetCoreおよび.Net5を介して、C#アプリケーションはWindows、Linux、およびMacOで実行され、展開範囲が拡大します。

C#.NET開発における最新の開発とベストプラクティスには、次のものが含まれます。1。非同期プログラミングは、アプリケーションの応答性を向上させ、Asyncを使用して非ブロッキングコードを簡素化し、キーワードを待ちます。 2。LINQは強力なクエリ関数を提供し、遅延した実行および式ツリーを介してデータを効率的に操作します。 3.パフォーマンスの最適化の提案には、非同期プログラミングの使用、LINQクエリの最適化、メモリの合理的な管理、コードの読みやすさとメンテナンスの改善、単体テストの書き込みが含まれます。

.NETを使用してアプリケーションを構築する方法は? .NETを使用してアプリケーションを構築することは、次の手順を通じて達成できます。1)C#言語やクロスプラットフォーム開発サポートを含む.NETの基本を理解します。 2)コンポーネントや.NETエコシステムの作業原則などのコア概念を学習します。 3)単純なコンソールアプリケーションから複雑なWebAPISおよびデータベース操作まで、基本的および高度な使用をマスターします。 4)構成やデータベース接続の問題など、一般的なエラーとデバッグ手法に精通している。 5)アプリケーションのパフォーマンスの最適化と非同期プログラミングやキャッシュなどのベストプラクティス。

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。

C#と.NETは、Web、デスクトップ、モバイル開発に適しています。 1)Web開発では、ASP.Netcoreがクロスプラットフォーム開発をサポートしています。 2)デスクトップ開発では、さまざまなニーズに適したWPFとWINFORMSを使用します。 3)モバイル開発は、Xamarinを介したクロスプラットフォームアプリケーションを実現します。

C#.NETエコシステムは、開発者がアプリケーションを効率的に構築できるようにするための豊富なフレームワークとライブラリを提供します。 1.ASP.NETCOREは、高性能Webアプリケーションの構築に使用されます。2.EntityFrameWorkCoreは、データベース操作に使用されます。これらのツールの使用とベストプラクティスを理解することにより、開発者はアプリケーションの品質とパフォーマンスを向上させることができます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ドリームウィーバー CS6
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









