2011-02-10 47 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

你遇到什么问题?我认为将所有适当的字符粘贴到“字符串”中都可以,但是可能不会? – John 2011-02-10 19:40:22

+0

如果您输出正确的HTML,它将被“识别并呈现正确”。你在哪里“打印”到?你用什么来查看HTML? – Oded 2011-02-10 19:41:11

回答

4

Graphics对象不理解HTML,以及DrawString将会严格的要求,如你已经发现了。

您需要使用带有粗体字体的图形对象Hello和非粗体字体world并删除HTML标记。

因此,对于更一般的方法,您需要HTML解析器(如HTML Agility Pack)以及将HTML翻译为不同字体的方法。

您可能会发现使用WebBrowser控件更容易并使用它进行打印。

相关问题