我有一个受保护的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文件中。
如何保存为没有弹出窗口?
答案 0 :(得分:0)
您的代码并没有真正在“ C#”中取消保护它。您正在使用Acrobat Reader对其进行保护。
您的代码将打开Acrobat Reader,并告诉它(带有/o /p /h
参数)以打开文件并直接进入打印对话框。如果您做不到的话,那就是Acrobat Reader的局限性。
您也许可以尝试使用/t
选项。参见here。但是我怀疑它只是无法为您提供一种将文件名提供给Print to PDF驱动程序的方法。如果没有,那么您就是不能这样做。
您可以研究.NET的PDF库,以便实际上在.NET中修改PDF,但是好的不是免费的。例如,Aspose.PDF是一个。