Удалить подпись из PDF файла

Удалить цифровую подпись из PDF файла

Когда подпись была добавлена в PDF файл, ее можно удалить. Вы можете удалить либо конкретную подпись, либо все подписи в файле. Самый быстрый способ удаления подписи также удаляет поле подписи, но возможно просто удалить подпись, сохранив поле подписи, чтобы файл можно было подписать снова.

Метод RemoveSignature класса PdfFileSignature позволяет вам удалить подпись из PDF файла. Этот метод принимает имя подписи в качестве входных данных. Либо укажите имя подписи напрямую, чтобы удалить все подписи, получите имена подписей, используя метод GetSignNames.

Следующий фрагмент кода показывает, как удалить цифровую подпись из PDF файла.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RemoveSignature()
{  
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    
    using (var pdFileSignature = new Aspose.Pdf.Facades.PdfFileSignature())
    {
        // Bind PDF document
        pdFileSignature.BindPdf(dataDir + "signed_rsa.pdf");
        // Get list of signature names
        var sigNames = pdFileSignature.GetSignNames();
        // Remove all the signatures from the PDF file
        for (int index = 0; index < sigNames.Count; index++)
        {
            Console.WriteLine($"Removed {sigNames[index]}");
            pdFileSignature.RemoveSignature(sigNames[index]);
        }

        // Save PDF document
        pdFileSignature.Save(dataDir + "RemoveSignature_out.pdf");
    }
}

Удалить подпись, но сохранить поле подписи

Как показано выше, метод RemoveSignature класса PdfFileSignature позволяет вам удалять поля подписи из PDF файлов. При использовании этого метода с версиями до 9.3.0 как подпись, так и поле подписи удаляются. Некоторые разработчики хотят удалить только подпись и сохранить поле подписи, чтобы его можно было использовать для повторной подписи документа. Чтобы сохранить поле подписи и удалить только подпись, пожалуйста, используйте следующий фрагмент кода.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RemoveSignatureButKeepField()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    
    using (var pdFileSignature = new Aspose.Pdf.Facades.PdfFileSignature())
    {       
        // Bind PDF document
        pdFileSignature.BindPdf(dataDir + "signed_rsa.pdf");

        pdFileSignature.RemoveSignature("Signature1", false);

        // Save PDF document
        pdFileSignature.Save(dataDir + "RemoveSignature_out.pdf");
    }
}

Следующий пример показывает, как удалить все подписи из полей.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RemoveSignatureButKeepField2()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    
    using (var pdFileSignature = new Aspose.Pdf.Facades.PdfFileSignature())
    {       
        // Bind PDF document
        pdFileSignature.BindPdf(dataDir + "signed_rsa.pdf");

        var sigNames = pdFileSignature.GetSignatureNames();
        foreach (var sigName in sigNames)
        {
            pdFileSignature.RemoveSignature(sigName, false);
        }

        // Save PDF document
        pdFileSignature.Save(dataDir + "RemoveSignature_out.pdf");
    }
}