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 diretamente o nome da assinatura, para remover todas as assinaturas, obtenha os nomes das assinaturas usando o método getSignNames.
O snippet de código a seguir mostra como remover a assinatura digital do arquivo PDF.
public static void RemoveSignature() {
// Criar objeto PdfFileSignature
PdfFileSignature pdfSign = new PdfFileSignature();
// Abrir documento PDF
pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");
// Obter lista de nomes de assinaturas
List<String> sigNames = pdfSign.getSignNames();
// Remover todas as assinaturas do arquivo PDF
for (int index = 0; index < sigNames.size(); index++) {
System.out.println("Removido " + sigNames.get(index));
pdfSign.removeSignature(sigNames.get(index));
}
// Salvar arquivo PDF atualizado
pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
}
Remover Assinatura mas Manter o Campo de Assinatura
Como 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 querem remover apenas a assinatura e manter o campo de assinatura para que ele possa ser usado para reassinar o documento. Para manter o campo de assinatura e remover apenas a assinatura, por favor, use o trecho de código a seguir.
public static void RemoveSignatureButKeepField() {
// Criar objeto PdfFileSignature
PdfFileSignature pdfSign = new PdfFileSignature();
// Abrir documento PDF
pdfSign.bindPdf(_dataDir + "DigitallySign.pdf");
pdfSign.removeSignature("Signature1", false);
// Salvar arquivo PDF atualizado
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");
List<String> sigNames = pdfSign.getSignNames();
for (String sigName : sigNames) {
pdfSign.removeSignature(sigName, false);
}
// Salvar arquivo PDF atualizado
pdfSign.save(_dataDir + "RemoveSignature_out.pdf");
}