我想从 c # web 服务打印 HTML。 网页浏览器控制不太好,在服务环境中不能很好地运行,在安全约束非常严格的系统中也不能很好地运行。 有没有什么免费的.NET 库啊,支持打印基本的 HTML 页面的? 下面是我到目前为止弄到的代码,运行的不好
public void PrintThing(string document){
if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
{
Thread thread =
new Thread((ThreadStart) delegate { PrintDocument(document); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
else
{
PrintDocument(document);
}}
protected void PrintDocument(string document){
WebBrowser browser = new WebBrowser();
browser.DocumentText = document;
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
browser.Print();}
当从 UI-type线程调用时,这种方法管用,但是当从服务类型线程调用时,并没有什么卵用。将 Print()更改为ShowPrintPreviewDialog()会产生以下 IE 脚本错误:
Error: dialogArguments.___IE_PrintType is null or not an object.
URL: res://ieframe.dll/preview.dlg