Tôi muốn in HTML từ dịch vụ web C#. Kiểm soát trình duyệt web là quá mức cần thiết và không hoạt động tốt trong môi trường dịch vụ, cũng như không hoạt động tốt trên hệ thống có các ràng buộc bảo mật rất chặt chẽ. Có bất kỳ loại thư viện nào miễn phí .NET
để hỗ trợ in một trang HTML cơ bản không? Đây là mã tôi có cho đến nay, mà không chạy đúng cách.Làm cách nào để in tài liệu HTML từ dịch vụ web?
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();
}
này hoạt động tốt khi gọi từ chủ đề giao diện người dùng kiểu, nhưng không có gì xảy ra khi gọi từ một sợi dịch vụ-type. Thay đổi Print()
để ShowPrintPreviewDialog()
mang lại kịch bản IE lỗi sau:
Error: 'dialogArguments.___IE_PrintType' is null or not an object
URL: res://ieframe.dll/preview.dlg
Và một hộp thoại xem trước khi in nhỏ trống rỗng xuất hiện.
Vui lòng chọn câu trả lời tốt nhất, cảm ơn. – mruanova
@mruanova Không có câu trả lời nào làm việc cuối cùng tôi đã thử chúng. Nếu bạn có một cái gì đó hoạt động cho chúng tôi biết. –