c# - 在不创建 HTML 文件的情况下打印 HTML 字符串?

标签 c# html printing

如何打印 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

最佳答案

Graphics 对象不理解 HTML,而 DrawString 将完全按照要求执行,正如您所发现的。

您需要为 Hello 使用粗体字体的 Graphics 对象,为 world 使用非粗体字体,并删除 HTML 标记。

因此,对于更通用的方法,您需要一个 HTML 解析器(例如 HTML Agility Pack)和一种将 HTML 转换为不同字体的方法。

您可能会发现使用 WebBrowser 更容易控制并使用它来打印。

关于c# - 在不创建 HTML 文件的情况下打印 HTML 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961762/

相关文章:

java - 是否可以从 Java 或 C# 发送 LiveMeeting 邀请?

c# - 查看字符串中是否存在关键字的算法

html - 如何使绝对定位的元素仅使用必要的宽度?

c++ - 检索特定打印机的可用工作表格式

android - 在 android 中的 Star TSP100 打印机上创建光栅收据

javascript - JQuery/Javascript 或其他方式静默仅打印一次

c# - 识别给定线程的位置

c# - 错误 - 无法联系位于指定 URL 的站点。没有名为 "*.asmx"的网站

html - 是否可以通过电子邮件发送正在使用 css 的面板

html - 让 div 换行