using Newtonsoft.Json.Linq; using PdfSharp; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Printing; using System.IO; using System.Linq; using System.Net; using System.Printing; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TheArtOfDev.HtmlRenderer.PdfSharp; namespace PrintProject { public class PrintProject { private PrintDocument printDocument = new PrintDocument(); [STAThread] public string PrintDocument11111(string inParams) { System.Diagnostics.Debugger.Launch(); string errorCode = "0"; string errorMessage = ""; JObject jObject = new JObject(); try { var browser = new WebBrowser(); // 将DocumentCompleted事件处理程序添加到WebBrowser对象。 browser.DocumentCompleted += (sender, e) => { // 创建 PrintDocument 并设定相关参数 PrintDocument pd = new PrintDocument(); pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1169); // A4 size in hundredths of an inch //pd.DefaultPageSettings.Landscape = true; // 横向打印 pd.PrintPage += (s, args) => { Bitmap bitmap = new Bitmap(browser.Width, browser.Height); browser.DrawToBitmap(bitmap, new Rectangle(0, 0, browser.Width, browser.Height)); args.Graphics.DrawImage(bitmap, args.MarginBounds); if (!pd.PrintController.IsPreview) bitmap.Dispose(); }; PageSetupDialog pageSetupDialog1 = new PageSetupDialog(); pageSetupDialog1.Document = pd; pageSetupDialog1.ShowDialog(); var printPreviewDialog1 = new PrintPreviewDialog(); printPreviewDialog1.Document = pd; printPreviewDialog1.ShowDialog(); if (MessageBox.Show("Do you want to print this page?", "Confirmation", MessageBoxButtons.YesNo) == DialogResult.Yes) { pd.Print(); // 开始打印 } }; string filePath = @"D:\index.html"; string htmlToPrint= @"

Hello World!

This is a test of HTML printing.

"; // 使用 FileStream 打开文件 using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { // 使用 StreamReader 读取文件内容 using (StreamReader reader = new StreamReader(fileStream)) { // 读取整个文件到一个字符串 htmlToPrint = reader.ReadToEnd(); } } browser.DocumentText = htmlToPrint; // 设置要打印的HTML内容 Application.Run(); } catch (Exception ex2) { errorCode = "-1"; errorMessage = ex2.Message; } jObject.Add("errorCode", errorCode); jObject.Add("errorMessage", errorMessage); return jObject.ToString(); } public static void PrintDocument33333333(string url) { System.Diagnostics.Debugger.Launch(); url = @"D:\index.html"; using (WebBrowser webBrowser = new WebBrowser()) { webBrowser.DocumentCompleted += (sender, args) => { if (webBrowser.ReadyState == WebBrowserReadyState.Complete) { webBrowser.Print(); } }; webBrowser.Navigate(url); // 等待文档加载完成 while (webBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } } } public static void PrintDocument343(string url) { System.Diagnostics.Debugger.Launch(); url = @"D:\index.html"; using (WebBrowser webBrowser = new WebBrowser()) { webBrowser.DocumentCompleted += (sender, args) => { if (webBrowser.ReadyState == WebBrowserReadyState.Complete) { webBrowser.Print(); } }; webBrowser.Navigate(url); // 等待文档加载完成 while (webBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } } } public string PrintDocument(string url) { System.Diagnostics.Debugger.Launch(); url = @"D:\index.html"; using (WebBrowser webBrowser = new WebBrowser()) { webBrowser.ScrollBarsEnabled = false; webBrowser.Navigate(url); // 等待页面加载完成 while (webBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } // 调用打印对话框 webBrowser.Print(); } return ""; } } }