2011-02-10 9 views
3

すべてのHTMLタグが認識され、正しく表示されるように、HTML文字列を印刷するにはどうすればよいですか? .HTMLファイルを作成して印刷することは可能だと思いますが、余分なファイルを作成せずにこれを行う方法があれば、どのように学習するのか興味があります。ありがとう!HTMLファイルを作成せずにHTML文字列を印刷する

補遺:

pd.PrintPage += new PrintPageEventHandler(PrintDocument_PrintPage); 
pd.Print(); 

もっとコード:

static private void PrintDocument_PrintPage(Object sender, PrintPageEventArgs e) { 
    Font printFont = new Font("Courier New", 12); 
    e.Graphics.DrawString("<b>Hello</b> world", printFont, Brushes.Black, 0, 0); 
} 

印刷結果:

<b>Hello</b> world 
+0

あなたは何に問題がありますか?私は適切な文字をすべて 'string'に張っても動作するだろうと思いますが、そうでないかもしれません。 – John

+0

正しいHTMLを出力すると、正しく認識されてレンダリングされます。どこに "印刷"していますか? HTMLを表示するために何を使用していますか? – Oded

+0

残念ながら、それはそのようには機能しません。私は実際にここからどの方向へ行くのか分かりません... – sooprise

答えて

4

として、GraphicsオブジェクトはHTMLを理解していない、と要求したとしてDrawStringが正確に行いますあなたは知っている。

Helloの太字フォントとworldの太字でないGraphicsオブジェクトを使用し、HTMLマークアップを削除する必要があります。

もっと一般的なアプローチでは、HTMLパーサー(たとえばHTML Agility Packなど)とHTMLを別のフォントに変換する方法が必要です。

WebBrowserコントロールを使用して簡単に印刷することができます。

+0

別のファイルを書き込まずに、C#文字列を直接WebBrowserControlに渡すことはできますか? – sooprise

+0

@sooprise - 私はこれを自分で試しませんでしたが、['DocumentStream'](http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser)を使用することができます。 documentstream.aspx)を直接参照してください。 – Oded