如何将文件文档发送到打印机并进行打印?
这是基本前提:
我的用户单击一些小控件,然后将一个PDF文件吐出到他的桌面。我可以通过某种方式将此文件发送到打印机队列,并打印到本地连接的打印机吗?
string filePath = "filepathisalreadysethere";SendToPrinter(filePath); //Something like this?
他将多次执行此过程。对于教室中的每个学生,他必须打印一张小报告卡。因此,我为每个学生生成一个PDF,并且我想使打印过程自动化,而不是让用户生成pdf,打印,生成pdf,打印,生成pdf,打印。
关于如何处理此问题的任何建议?我在运行Windows Forms .NET 4的Windows XP上运行。
我发现了这个StackOverflow问题,其中可接受的答案表明:
创建文件后,可以通过命令行打印它们(可以使用在System.Diagnostics命名空间中找到的Command类)。
我将如何完成?
回答:
您可以告诉Acrobat Reader使用“打印”动词来打印文件(正如此处已经提到的那样)。之后,您还需要以编程方式关闭Acrobat Reader:
private void SendToPrinter(){
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = @"c:\output.pdf";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process p = new Process();
p.StartInfo = info;
p.Start();
p.WaitForInputIdle();
System.Threading.Thread.Sleep(3000);
if (false == p.CloseMainWindow())
p.Kill();
}
这将打开Acrobat Reader,并告诉它将PDF发送到默认打印机,然后在三秒钟后关闭Acrobat。
如果您愿意随应用程序一起提供其他产品,则可以使用GhostScript(免费)或命令行PDF打印机,例如http://www.commandlinepdf.com/(商业)。
该示例代码在 当前注册的可打印PDF的应用程序中 打开 PDF ,这是大多数人机器上的Adobe Acrobat
Reader。但是,他们可能使用其他PDF查看器,例如Foxit(http://www.foxitsoftware.com/pdf/reader/)。但是,示例代码仍应正常工作。
以上是 如何将文件文档发送到打印机并进行打印? 的全部内容, 来源链接: utcz.com/qa/436364.html