This is sample Java program showing how to clear and delete signature fields in a PDF using Qoppa’s PDF library jPDFProcess.

The jPDFProcess’ public API does not give a direct access to deleting fields in a PDF, but when deleting widgets which are the annotation associated with a field on a PDF page, it will also remove the associated field.

This sample java program opens a PDF documents, clears all signatures and remove the signature widgets which will also remove the underlying fields associated with the widgets.

// Load the PDF document
PDFDocument pdfDoc = new PDFDocument ("C:\\myfolder\\signedpdf.pdf", null);
/** first clear all the signature fields **/
// get signature fields
Vector<SignatureField> sigFields = pdfDoc.getAcroForm().getSignatureFields(); 
// loop through all the signature fields
for(int count = 0; count < sigFields.size(); count++)
  // clear current signature field
  System.out.println("Clearing signature field " + sigFields.get(count).getFieldName());    			
/** now delete all the signature widgets **/         
// loop through pages in the PDF
for(int page = 0; page <pdfDoc.getPageCount(); page++ )
  // get annotations - which include form field widgets - on the current page 
  Vector<Annotation> annots = pdfDoc.getPage(page).getAnnotations();
  // loop through annotations
  for(int count = 0; count < annots.size(); count++)
      // if this annotation is a signature widget
      if(annots.get(count) instanceof WidgetSignature)
        // remove the signature widget 
        // this also removes any associated signature field
        System.out.println("Signature widget found and removed on page " + (page+1));
// save the PDF (unsigned)

Here is the output for the program above for a PDF that contains 2 digital signatures on the first page:

Clearing signature field Signature1
Clearing signature field Signature2
Signature widget found and removed on page 1
Signature widget found and removed on page 1