Deleting annotationskeyboard_arrow_down

Deleting annotations

Using the PDFTron library, you can delete a single annotation, delete all the annotations on a page, or delete all the annotations in a PDF document.

The PDFTron library has an annotation list dialog fragment. The dialog fragment allows users to delete annotations easily. For more information, see annotation dialog fragment.
To delete an annotation, you need the page number of the annotation. To avoid looping through the whole document to find the page number of the annotation, we recommend you always keep track of the page number when you get an annotation.

linkDeleting an annotation

To delete an annotation, you need to lock PDFViewCtrl first. See the section on document locking for more information.

You can delete an annotation as follows:

public void deleteAnnotation(PDFViewCtrl pdfViewCtrl, Annot annot, int pageNum) {
  boolean 
  try {
      // Lock the document first, because accessing annotation/doc information isn't thread-safe.
      pdfViewCtrl.docLock(true);
      shouldUnlock = true;
      Page page = pdfViewCtrl.getDoc().getPage(pageNum);
      page.annotRemove(annot);
      pdfViewCtrl.update(annot, pageNum);
  catch (Exception e) {
      e.printStackTrace();
  } finally {
      if (shouldUnlock) {
        pdfViewCtrl.docUnlock();
      }
  }
}

linkDeleting all annotations on a page

The following snippet shows how to enumerate all the annotations on a page, as well as how to delete them.

public static void deleteAnnotationsOnPage(PDFViewCtrl pdfViewCtrl, int pageNum) {
    boolean shouldUnlock = false;
    try {
        pdfViewCtrl.docLock(true);
        shouldUnlock = true;
        Page page = pdfViewCtrl.getDoc().getPage(pageNum);
        int annotCount = page.getNumAnnots();
        while (annotCount > 0) {
            page.annotRemove(0);
            annotCount = page.getNumAnnots();
        }
        pdfViewCtrl.update(true);
    }catch (PDFNetException e) {
        e.printStackTrace();
    }finally {
        if (shouldUnlock){
            pdfViewCtrl.docUnlock();
        }
    }
}

linkDeleting all the annotations in a PDF document

The following snippet shows how to traverse all the pages in a PDF document and delete all the annotations.

public static void deleteAllAnnotations(PDFViewCtrl pdfViewCtrl) {
    boolean shouldUnlock = false;
    try {
        pdfViewCtrl.docLock(true);
        shouldUnlock = true;
        PDFDoc pdfDoc = pdfViewCtrl.getDoc();
        PageIterator itr = pdfDoc.getPageIterator();
        while (itr.hasNext()) {
            Page page = (Page) itr.next();
            int annotCount = page.getNumAnnots();
            while (annotCount > 0) {
                page.annotRemove(0);
                annotCount = page.getNumAnnots();
            }
        }
        pdfViewCtrl.update(true);
    }catch (PDFNetException e) {
        e.printStackTrace();
    }finally {
        if (shouldUnlock){
            pdfViewCtrl.docUnlock();
        }
    }
}