【解決方法】HTML ページのフォーマットと印刷


やあ :)

私はHTMLでいくつかの作業を行っており、これらのHTMLファイルを(紙に)印刷したいのですが、実際にはファイルは存在せず、すべてが文字列に保存され、すべてのテキストがHTMLに保存されていますが、すでに印刷したいですフォーマット…

例えば:

C#
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 をレンダリングしてそのコンテンツを印刷できます。

-SA

解決策 3

これを試して。
これを行うには、WebBrowser コントロールを使用できます。 WinForms 内に HTML を表示することができます。

DocumentText プロパティを使用すると、表示する HTML を表す文字列を設定できます。

例えば:

HTML
webBrowser.DocumentText = "<html><body><p>I like StackOverflow</p><body></html>";

その後、ページを印刷する場合は、Document が完了するまで待ってから、WebBrowser の Print メソッドを呼び出す必要があります。 MSDN は、それを行う簡単な方法を示しています。

C#
 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 ページとして印刷するには、ブラウザーで印刷する必要があります。そうしないと、単なるテキストになります。

コメント

タイトルとURLをコピーしました