[ad_1]
やあ :)
私はHTMLでいくつかの作業を行っており、これらのHTMLファイルを(紙に)印刷したいのですが、実際にはファイルは存在せず、すべてが文字列に保存され、すべてのテキストがHTMLに保存されていますが、すでに印刷したいですフォーマット…
例えば:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string HTML = "<html>" + "<head>" + " <style type=\"text/css\">" + " .title {" + " color: blue;" + " text-decoration: bold;" + " text-size: 1em;" + " }" + " .author {" + " color: gray;" + " }" + " </style>" + "</head>" + "<body>" + " <p>" + " <span class=\"title\">{0}</span>" + " <span class=\"author\">{1}</span>" + " </p>" + "</body>" + "</html>"; // Just a sample of what I whant to do... // PseudoCode //Render the HTML code RenderHTML aa = new RenderHTML(string.Format(HTML, "Alexandre", "Bencz")); aa.PrintDocumentInPaper(); } } }
見つけた: http://msdn.microsoft.com/en-us/library/w290k23d.aspx[^]
しかし、これを行う別の方法、より良い方法があるかどうか知りたい.. ? 🙂
解決策 2
を使用できます。 WebBrowser
そこから制御して印刷します。 かもしれない System.Windows.Forms.WebBrowser
また System.Windows.Controls.WebBrowser
. あなたはそれを知っています。
しかし、非常に異なる興味深い機会が 1 つあります。それは、この CodeProject 記事のコントロールです。 使用するプロの HTML レンダラー[^].
これは非常に高品質のコントロールで、軽量な方法で HTML をレンダリングできます。 System.Windows.Forms.RichTextBox
コントロール。 HTML をレンダリングしてそのコンテンツを印刷できます。
解決策 3
これを試して。
これを行うには、WebBrowser コントロールを使用できます。 WinForms 内に HTML を表示することができます。
DocumentText プロパティを使用すると、表示する HTML を表す文字列を設定できます。
例えば:
webBrowser.DocumentText = "<html><body><p>I like StackOverflow</p><body></html>";
その後、ページを印刷する場合は、Document が完了するまで待ってから、WebBrowser の Print メソッドを呼び出す必要があります。 MSDN は、それを行う簡単な方法を示しています。
private void PrintHelpPage() { // Create a WebBrowser instance. WebBrowser webBrowserForPrinting = new WebBrowser(); // Add an event handler that prints the document after it loads. webBrowserForPrinting.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(PrintDocument); // Set the Url property to load the document. webBrowserForPrinting.Url = new Uri(@"\\myshare\help.html"); } private void PrintDocument(object sender, WebBrowserDocumentCompletedEventArgs e) { // Print the document now that it is fully loaded. ((WebBrowser)sender).Print(); // Dispose the WebBrowser now that the task is complete. ((WebBrowser)sender).Dispose(); }
PrintDialog メソッドを使用して、問題が印刷設定ではないことを確認することも検討してください。
MSDN へのリンクは次のとおりです。 MSDN の WebBrowser コントロールを使用して印刷する[^]
重複の可能性: WebBrowser コントロール コンテンツの印刷[^]
解決策 1
ページ内で javascsript の print メソッドを呼び出すことができますが、これを HTML ページとして印刷するには、ブラウザーで印刷する必要があります。そうしないと、単なるテキストになります。
[ad_2]
コメント