使用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();
Run Code Online (Sandbox Code Playgroud)
唯一的问题是保存对话框,它请求文件名(*.xps)保存结果的位置.Everbody建议DOCINFO解决这个问题,但我没有找到任何使用的例子.我需要以编程方式通过Microsoft XPS Document Writer以默认输出文件名打印PDF文件.在这种情况下我应该如何使用DOCINFO?
你能帮助我吗?
您无法通过生成 Acrobat Reader 进行可靠的打印,除非您为其提供桌面会话并且那里会有用户,因为它有时会弹出需要用户注意的对话框。
如果在无人看管的情况下使用,它还会违反 Adobe 的许可。
不过,您可以使用 Ghostscript 进行打印。
Ghostscript 有一个名为Ghostscript.Net的 C# 接口,我已经在一些非常大的项目中成功使用了它。Ghostscript 和 Ghostcript.Net 都是免费且开源的。