Как распечатать документ HTML из веб-службы?
Я хочу напечатать HTML из веб-службы C #. Управление через веб-браузер является избыточным, оно плохо работает в сервисной среде и не работает хорошо в системе с очень жесткими ограничениями безопасности. Есть ли какой-нибудь бесплатный.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();
}
Это прекрасно работает при вызове из потоков типа пользовательского интерфейса, но ничего не происходит при вызове из потока типа службы. измененияPrint()
вShowPrintPreviewDialog()
выдает следующую ошибку скрипта IE:
Ошибка: dialogArguments.___IE_PrintType
является нулем или не объектом.
URL:res://ieframe.dll/preview.dlg
И появляется небольшое пустое диалоговое окно предварительного просмотра.