| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- 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= @"<html>
- <body>
- <h1>Hello World!</h1>
- <p>This is a test of HTML printing.</p>
- </body>
- </html>";
- // 使用 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 "";
- }
- }
- }
|