C# 用C语言在Windows服务中打印HTML文件#

C# 用C语言在Windows服务中打印HTML文件#,c#,html,service,printing,C#,Html,Service,Printing,我试图通过窗口服务打印HTML文件,该服务检查文件夹中的新文件,然后读取该文件以获取网络打印机名称,然后剩余的行包含要打印的HTML文件的路径 没有错误,但没有打印任何内容。这是进行此类项目的正确方式吗?我以为每次都可以设置默认打印机,但不确定这是否正确。WindowsImpersonationContext是我上次尝试时留下的,但可能需要删除 [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLast

我试图通过窗口服务打印HTML文件,该服务检查文件夹中的新文件,然后读取该文件以获取网络打印机名称,然后剩余的行包含要打印的HTML文件的路径

没有错误,但没有打印任何内容。这是进行此类项目的正确方式吗?我以为每次都可以设置默认打印机,但不确定这是否正确。WindowsImpersonationContext是我上次尝试时留下的,但可能需要删除

        [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值非常低,无法阅读。