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 またはオブジェクトではありません。URL:
res://ieframe.dll/preview.dlg
小さな空の印刷プレビュー ダイアログが表示されます。