14 c# printing windows-services
我正在使用Windows服务,我想在服务启动时打印.html页面.我正在使用此代码并且打印效果很好.但是打印对话框来了,如何在没有打印对话框的情况下打印?
public void printdoc(string document)
{
Process printjob = new Process();
printjob.StartInfo.FileName = document;
printjob.StartInfo.UseShellExecute = true;
printjob.StartInfo.Verb = "print";
printjob.StartInfo.CreateNoWindow = true;
printjob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
printjob.Start();
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来打印它而不显示打印对话框.
更新:响应此:
但是我已经使用过这个课了但是当我打电话的时候
axW.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT,SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER , ref em, ref em);
Run Code Online (Sandbox Code Playgroud)
当我从窗口服务使用时,我的程序阻止在这里,但它从Windows应用程序正常工作.
Tar*_*ier 15
首先,这是代码:
using System.Reflection;
using System.Threading;
using SHDocVw;
namespace HTMLPrinting
{
public class HTMLPrinter
{
private bool documentLoaded;
private bool documentPrinted;
private void ie_DocumentComplete(object pDisp, ref object URL)
{
documentLoaded = true;
}
private void ie_PrintTemplateTeardown(object pDisp)
{
documentPrinted = true;
}
public void Print(string htmlFilename)
{
documentLoaded = false;
documentPrinted = false;
InternetExplorer ie = new InternetExplorerClass();
ie.DocumentComplete += new DWebBrowserEvents2_DocumentCompleteEventHandler(ie_DocumentComplete);
ie.PrintTemplateTeardown += new DWebBrowserEvents2_PrintTemplateTeardownEventHandler(ie_PrintTemplateTeardown);
object missing = Missing.Value;
ie.Navigate(htmlFilename, ref missing, ref missing, ref missing, ref missing);
while (!documentLoaded && ie.QueryStatusWB(OLECMDID.OLECMDID_PRINT) != OLECMDF.OLECMDF_ENABLED)
Thread.Sleep(100);
ie.ExecWB(OLECMDID.OLECMDID_PRINT, OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref missing, ref missing);
while (!documentPrinted)
Thread.Sleep(100);
ie.DocumentComplete -= ie_DocumentComplete;
ie.PrintTemplateTeardown -= ie_PrintTemplateTeardown;
ie.Quit();
}
}
}
Run Code Online (Sandbox Code Playgroud)
OLECMDID_PRINT
指定了该命令,以及在OLECMDEXECOPT_DONTPROMPTUSER
没有用户交互的情况下自动打印的选项.一个重要的注意事项是,这将打印到默认打印机.要指定打印机,您必须设置默认打印机(在代码中,您可以调用SetDefaultPrinter()).两个最终参数允许可选的输入和输出参数.从这个网站http://www.ussbd.com/printhtm.html
using HtmlPrinter;
hpObj=new HtmlPrinter.HtmlPrinter();
hpObj.PrintUrlFromMemory(txtUrl.Text);
Run Code Online (Sandbox Code Playgroud)
现在,您在项目中添加代码以从源文本打印 html 页面:
HtmlPrinter.HtmlPrinter hpObj=new HtmlPrinter.HtmlPrinter();
hpObj.PrintHtml(txtString.Text, true);
Run Code Online (Sandbox Code Playgroud)
如果您想在没有打印对话框的情况下进行打印,请使用以下行:
hpObj.PrintHtml(txtString.Text, false);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33974 次 |
最近记录: |