PDF到XPS通过Microsoft XPS Document Writer进行转换

Myk*_*hko 9 c# xps

使用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?

你能帮助我吗?

Ter*_*men 1

您无法通过生成 Acrobat Reader 进行可靠的打印,除非您为其提供桌面会话并且那里会有用户,因为它有时会弹出需要用户注意的对话框。

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

不过,您可以使用 Ghostscript 进行打印。

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