9

使用 Microsoft XPS Document Writer 打印 pdf 文档:

string filename = "C:\\1.pdf";

Process process = new Process();
process.StartInfo.Verb = "PrintTo";

process.StartInfo.FileName = @"C:\Program Files\Adobe\Reader 9.0\Reader\acrord32.exe";

process.StartInfo.Arguments = 
    "/t \"C:\\1.pdf\" \"Microsoft XPS Document Writer\" \"xps\"  XPSPort:";

process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;

process.StartInfo.UseShellExecute = false;

process.Start();
process.StandardOutput.ReadToEnd();

process.WaitForExit();

唯一的问题是保存对话框,它请求文件名 (*.xps) 将结果保存在哪里。每个人都建议DOCINFO解决这个问题,但我没有找到任何使用示例。我需要使用默认输出文件名通过 Microsoft XPS Document Writer 以编程方式打印 PDF 文件。在这种情况下我应该如何使用 DOCINFO?

你能帮助我吗?

4

2 回答 2

1

您不能通过生成 Acrobat Reader 来可靠地打印,除非您给它一个桌面会话并且那里会有一个用户,因为它有时会弹出需要用户注意的对话框。

如果在无人看管的情况下使用,也会违反 Adob​​e 的许可。

但是,您可以使用 Ghostscript 进行打印。

Ghostscript 有一个名为Ghostscript.Net的 C# 接口,我已在一些非常大的项目中成功使用它。Ghostscript 和 Ghostcript.Net 都是免费和开源的。

于 2018-07-19T19:15:27.167 回答
-1

DOCINFO 结构管理打印后台处理程序中的文件名,但不与 xps 驱动程序保存对话框实现链接。但是您可能会发现保存对话框窗口,输入文件名并以编程方式关闭它。例如阅读这篇文章

于 2010-02-18T10:17:06.647 回答