使用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)保存结果的位置。 Everbody建议DOCINFO来解决这个问题,但我没有找到任何使用的例子。 我需要以编程方式通过Microsoft XPS Document Writer以默认输出文件名打印PDF文件。在这种情况下我应该如何使用DOCINFO?
你能帮助我吗?
答案 0 :(得分:1)
除非生成桌面会话,否则无法通过生成Acrobat Reader可靠地进行打印,因为那里会有用户,因为有时会弹出需要用户注意的对话框。
如果在无人看管的情况下使用,它也会违反Adobe的许可证。
但是,您可以使用Ghostscript打印。
Ghostscript有一个名为Ghostscript.Net的C#接口,我已经在一些大型项目中成功使用了该接口。 Ghostscript和Ghostcript.Net都是免费和开源的。
答案 1 :(得分:-1)
DOCINFO struct管理打印后台处理程序中的文件名,但未与xps驱动程序保存对话框实现链接。但您可能会找到“保存”对话框窗口,输入文件名并以编程方式关闭它。例如,请阅读此article。