C# 웹 서비스에서 HTML을 인쇄하려고합니다. 웹 브라우저 컨트롤은 과도하게 사용되며 서비스 환경에서는 제대로 작동하지 않으며 보안 제약이 매우 엄격한 시스템에서도 제대로 작동하지 않습니다. 기본 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 형 스레드에서 호출 할 때 잘 작동하지만 아무것도 서비스 형 스레드에서 호출 할 때 발생합니다.
Error: 'dialogArguments.___IE_PrintType' is null or not an object
URL: res://ieframe.dll/preview.dlg
그리고 작은 빈 인쇄 미리보기 대화 상자가 나타납니다 : ShowPrintPreviewDialog()
에 Print()
을 변경하면 다음 IE 스크립트 오류를 얻을 수 있습니다.
가장 좋은 대답을 선택하세요, 감사합니다. – mruanova
@mruanova 마지막으로 해본 답변 중 어느 것도 시도하지 못했습니다. 너는 일하는 것이 있으면 우리에게 알려 줘. –