c#如何从Web服务打印HTML文档?

我想从C# web服务打印HTML。 Web浏览器控件过大,在服务环境中不能很好地运行,在安全性非常严格的系统上也不能很好地运行。是否有任何免费的.NET库可以支持基本HTML页面的打印?

解决方案:

我们可以使用以下命令从命令行进行打印:

rundll32.exe
  %WINDIR%\System32\mshtml.dll,PrintHTML
  "%1"

其中%1是要打印HTML文件的文件路径。

如果我们不需要从内存中打印(或者可以承受以临时文件的形式写入磁盘),则可以使用:

using (Process printProcess = new Process())
{
    string systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
    printProcess.StartInfo.FileName = systemPath + @"\rundll32.exe";
    printProcess.StartInfo.Arguments = systemPath + @"\mshtml.dll,PrintHTML """ + fileToPrint + @"""";
    printProcess.Start();
}
日期:2020-03-23 14:46:20 来源:oir作者:oir