目前,我正在使用以下 c# 代码行将 pdf 文件自动打印到移动打印机:
string defFile = (Path.Combine(System.Windows.Forms.Application.StartupPath, tkt_no + "_DEF.pdf"));
string rwPrinter = "";
if (GlobalVars.useDefaultPrinter == false)
{
foreach (string strPrinter in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
{
if (strPrinter.StartsWith("ZDesigner"))
{
rwPrinter = strPrinter;
break;
}
}
}
if (jobdo.Equals("print"))
{
Process process = new Process();
process.StartInfo.FileName = defFile;
if (rwPrinter.Length > 0)
{
process.StartInfo.Verb = "printto";
process.StartInfo.Arguments = "\"" + rwPrinter + "\"";
}
else
{
process.StartInfo.Verb = "print";
}
process.Start();
process.WaitForInputIdle();
Thread.Sleep(10000);
process.Kill();
如果应用程序位于工作站桌面上,上述这些行很好,但我遇到的问题是,当它实际从 Citrix 应用程序快捷方式打印 pdf 文件时,它会生成 Adobe Reader(pdf 的默认设置)并且不会关闭打印作业完成。
所以我的问题是,有没有办法在不打开 Adobe 或类似软件的情况下打印 pdf 文档?也许在我在同一个应用程序中用于填充字段的 iTextSharp 库中?