我想从C#Web服务打印HTML。Web浏览器控件过大,在服务环境中无法正常运行,在安全性非常严格的系统上也无法正常运行。是否有某种免费的.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类型的线程调用时,此方法工作正常,但从服务类型的线程调用时,则无任何反应。更改Print()为会ShowPrintPreviewDialog()产生以下IE脚本错误:
错误:
dialogArguments.___IE_PrintType为null或不是对象。网址:
res://ieframe.dll/preview.dlg
随即出现一个小的空白打印预览对话框。