如何在 C# 中静默保存 pdf

How to save a pdf silently in c#

我有一个受保护的 PDF。

如果您打开此 PDF,请打开打印对话框并选择 "Print to 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.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();

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

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

您的代码并没有真正解除保护"in C#"。您正在使用 Acrobat Reader.

解除保护

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

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

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