在不创建 HTML 文件的情况下打印 HTML 字符串?
Posted
技术标签:
【中文标题】在不创建 HTML 文件的情况下打印 HTML 字符串?【英文标题】:Printing An HTML String Without Creating An HTML File? 【发布时间】:2011-06-25 02:36:34 【问题描述】:如何打印 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
【问题讨论】:
你遇到了什么问题?我认为将所有适当的字符粘贴到string
中会起作用,但也许不行?
如果您输出正确的 HTML,它将被“正确识别和呈现”。您要“打印”到哪里?你用什么来查看 HTML?
不幸的是它不能那样工作。真不知道从这里往哪个方向走……
在什么情况下?您是说要获取和/或显示动态生成的 HTML 内容吗?
我只是想从 C# 字符串转到正确呈现的 HTML 打印输出
【参考方案1】:
Graphics
对象不理解 HTML,而DrawString
将完全按照您的要求执行,正如您所发现的那样。
您需要使用带有粗体字体的 Hello
和非粗体字体的 Graphics 对象 world
并删除 HTML 标记。
因此,对于更通用的方法,您需要一个 HTML 解析器(例如 HTML Agility Pack)和一种将 HTML 转换为不同字体的方法。
您可能会发现使用WebBrowser
控件并使用它来打印更容易。
【讨论】:
我可以从 C# 字符串直接转到 WebBrowserControl 打印而不编写单独的文件吗? @sooprise - 我自己没试过,但你应该可以直接使用DocumentStream
。以上是关于在不创建 HTML 文件的情况下打印 HTML 字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不覆盖之前数据的情况下创建多个 java txt 文件? [复制]
是否可能 HTML 下载属性可以在不使用 javascript 的情况下下载多个文件?