Remover Assinatura de Arquivo PDF
Remover Assinatura Digital do Arquivo PDF
Quando uma assinatura é adicionada a um arquivo PDF, é possível removê-la. Você pode remover uma assinatura específica ou todas as assinaturas em um arquivo. O método mais rápido para remover a assinatura também remove o campo de assinatura, mas é possível apenas remover a assinatura, mantendo o campo de assinatura para que o arquivo possa ser assinado novamente.
O método RemoveSignature da classe PdfFileSignature permite que você remova uma assinatura de um arquivo PDF. Este método recebe o nome da assinatura como entrada. Ou especifique o nome da assinatura diretamente, para remover todas as assinaturas, obtenha os nomes das assinaturas usando o método GetSignNames.
O trecho de código a seguir mostra como remover a assinatura digital do arquivo PDF.
public static void RemoveSignature()
{
// Cria objeto PdfFileSignature
PdfFileSignature pdfSign = new PdfFileSignature();
// Abre documento PDF
pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
// Obter lista de nomes de assinaturas
var sigNames = pdfSign.GetSignNames();
// Remove todas as assinaturas do arquivo PDF
for (int index = 0; index < sigNames.Count; index++)
{
Console.WriteLine($"Removido {sigNames[index]}");
pdfSign.RemoveSignature(sigNames[index]);
}
// Salva arquivo PDF atualizado
pdfSign.Save(_dataDir + "RemoveSignature_out.pdf");
}
Remover Assinatura mas Manter o Campo de Assinatura
Conforme mostrado acima, o método RemoveSignature da classe PdfFileSignature permite remover campos de assinatura de arquivos PDF. Ao usar este método com versões anteriores à 9.3.0, tanto a assinatura quanto o campo de assinatura são removidos. Alguns desenvolvedores desejam remover apenas a assinatura e manter o campo de assinatura para que ele possa ser usado para re-assinar o documento. Para manter o campo de assinatura e remover apenas a assinatura, por favor, use o seguinte trecho de código.
public static void RemoveSignatureButKeepField()
{
// Create PdfFileSignature object
PdfFileSignature pdfSign = new PdfFileSignature();
// Open PDF document
pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
pdfSign.RemoveSignature("Signature1", false);
// Save updated PDF file
pdfSign.Save(_dataDir + "RemoveSignature_out.pdf");
}
O exemplo a seguir mostra como remover todas as assinaturas dos campos.
public static void RemoveSignatureButKeepField2()
{
// Criar objeto PdfFileSignature
PdfFileSignature pdfSign = new PdfFileSignature();
// Abrir documento PDF
pdfSign.BindPdf(_dataDir + "DigitallySign.pdf");
var sigNames = pdfSign.GetSignNames();
foreach (var sigName in sigNames)
{
pdfSign.RemoveSignature(sigName, false);
}
// Salvar arquivo PDF atualizado
pdfSign.Save(_dataDir + "RemoveSignature_out.pdf");
}