如何将文件文档发送到打印机并进行打印?

这是基本前提:

我的用户单击一些小控件,然后将一个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

回到顶部