C# 用C语言在Windows服务中打印HTML文件#
我试图通过窗口服务打印HTML文件,该服务检查文件夹中的新文件,然后读取该文件以获取网络打印机名称,然后剩余的行包含要打印的HTML文件的路径 没有错误,但没有打印任何内容。这是进行此类项目的正确方式吗?我以为每次都可以设置默认打印机,但不确定这是否正确。WindowsImpersonationContext是我上次尝试时留下的,但可能需要删除C# 用C语言在Windows服务中打印HTML文件#,c#,html,service,printing,C#,Html,Service,Printing,我试图通过窗口服务打印HTML文件,该服务检查文件夹中的新文件,然后读取该文件以获取网络打印机名称,然后剩余的行包含要打印的HTML文件的路径 没有错误,但没有打印任何内容。这是进行此类项目的正确方式吗?我以为每次都可以设置默认打印机,但不确定这是否正确。WindowsImpersonationContext是我上次尝试时留下的,但可能需要删除 [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLast
[DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool SetDefaultPrinter(string Name);
protected void SendToPrinter(string printerName, string filename)
{
using (WindowsImpersonationContext wic = WindowsIdentity.Impersonate(IntPtr.Zero))
{
Process printjob = new Process();
SetDefaultPrinter(printerName);
printjob.StartInfo.FileName = filename;
printjob.StartInfo.UseShellExecute = true;
printjob.StartInfo.Verb = "print";
printjob.StartInfo.CreateNoWindow = true;
printjob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
printjob.Start();
}
}
显然,在打印之前,您必须将HTML转换为图形图像。我使用HtmlRender.Core、HtmlRender.WinForms进行了测试,但字体的rez值非常低,无法阅读。