【问题标题】:PDF to XPS Converting via Microsoft XPS Document Writer通过 Microsoft XPS Document Writer 将 PDF 转换为 XPS
【发布时间】:2011-01-18 05:35:14
【问题描述】:

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

你能帮帮我吗?

【问题讨论】:

  • 解决方案不是那么简单(10+ 行)。无论如何,Adobe Reader 存在一个经典问题 - 一个副本仍然打开,这对用户来说看起来很糟糕。最好使用 pdf 到 xps 的转换工具,像这样:pdftron.com/pdf-sdk/conversion-library 有 2-3 种选择。

标签: c# xps


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-09-08
      • 2011-07-08
      • 2012-10-15
      • 2011-11-27
      • 2011-06-25
      • 2019-12-01
      • 2011-04-22
      • 2011-11-25
      • 2011-06-30
      相关资源
      最近更新 更多