对于我们使用了.NET WebBrowser控件在其他的答案中概述,但最近控制已经变得越来越不稳定多年。即使重建我们用于在仓库中打印选择表以运行Windows 10的机器,我们仍然存在页面问题,直到我们重新启动计算机后才会打印。相同的代码为我们提供了4年以上的服务,但现在看来微软最近的更新使得这种控制方式比过去更加麻烦。
另一个主要问题是没有简单的方法来打印到Internet Explorer的默认设置以外的打印机,所以如果您希望打印到不同的打印机,那么对于该控件而言,您几乎没有运气。
很多年前,我们用C++和QtWebKit库编写了打包代码打印代码的版本。因此,为了解决这些问题,我挖掘了打印网页文件的旧C++应用程序,并将其转化为此项目以通过命令行进行打印,并使其能够打印到不同的打印机。
你可以得到源代码在这里:
,你可以下载一个32位二进制预编译的Windows使用MinGW的从这里开始:
代码是完全可移植的,所以如果需要,您可以轻松地将它编译为在macOS或Linux上运行。
的命令行是很容易使用和下面的用法是:
Usage: PrintHtml [-test] [-p printer] [-l left] [-t top] [-r right] [-b bottom] [url2]
-test - Don't print, just show what would have printed.
-p printer - Printer to print to. Use 'Default' for default printer.
-l left - Optional left margin for page.</