【问题标题】:How to save a pdf silently in c#如何在c#中静默保存pdf
【发布时间】:2019-07-23 19:06:16
【问题描述】:

我有一个受保护的 PDF。

如果您打开此 PDF,请打开打印对话框并选择“打印到 PDF”,但如果此时您保存在 PC 中,它将被保存为未受保护的。

我想在 C# 中做到这一点。我有这个代码:

Process proc = new Process();
proc.StartInfo.FileName = @"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe";
proc.StartInfo.Arguments = String.Format(@"/o /p /h C:\Users\itsvan.moreno\Desktop\1.pdf", @"C:\Users\itsvan.moreno\Desktop\");
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = false;
proc.EnableRaisingEvents = true;
proc.Start();
if (proc.HasExited == false)
{
    proc.WaitForExit(10000);
}
proc.Close();

所有过程都正确,但会显示一个弹出窗口,将名称放在新的 pdf 文件中。

如何在没有弹出窗口的情况下另存为?

【问题讨论】:

  • 请不要删除和复制your question。您的另一个问题已关闭,因为不清楚。您认为重复问题而不添加新信息会产生不同的结果吗?
  • 改为编辑您的问题以提供额外信息以响应 cmets 中的反馈,然后问题将重新打开。
  • 艾米这不是同一个问题,我知道我之前的问题是一个肮脏的尝试。谢谢加布里埃尔卢西
  • 完全一样。您唯一更改的是添加了屏幕截图。以后,编辑您现有的问题。

标签: c# pdf acrobat


【解决方案1】:

您的代码并没有真正取消“在 C# 中”的保护。您正在使用 Acrobat Reader 取消对它的保护。

您的代码打开 Acrobat Reader 并告诉它(使用 /o /p /h 参数)打开文件并直接进入打印对话框。如果你不能更进一步,那是 Acrobat Reader 的限制。

您或许可以尝试使用/t 选项。见here。但我怀疑它只是没有为您提供一种将文件名提供给 Print to PDF 驱动程序的方法。如果没有,那么你就不能这样做。

您可以查看 .NET 的 PDF 库,这样您实际上就可以在 .NET 中修改 PDF,但好的不是免费的。例如,Aspose.PDF 是 1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 2011-05-28
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多