Como faço para imprimir um documento HTML de um serviço da web?
Eu quero imprimir HTML de um serviço da Web c #. O controle do navegador da Web é excessivo e não funciona bem em um ambiente de serviço, nem funciona bem em um sistema com restrições de segurança muito restritas. Existe algum tipo de livre.NET
biblioteca que suportará a impressão de uma página HTML básica? Aqui está o código que tenho até agora, que não funciona corretamente.
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();
}
Isso funciona bem quando chamado de segmentos de tipo de interface do usuário, mas nada acontece quando chamado de um segmento de tipo de serviço. MudandoPrint()
paraShowPrintPreviewDialog()
produz o seguinte erro de script do IE:
Erro: dialogArguments.___IE_PrintType
é nulo ou não é um objeto.
URL:res://ieframe.dll/preview.dlg
E uma pequena caixa de diálogo de visualização de impressão vazia é exibida.