Удалить акроформу в pdf - PullRequest
       13

Удалить акроформу в pdf

1 голос
/ 01 апреля 2019

Я использую removeField , чтобы удалить поле документа, но как я могу полностью удалить acroform в pdf? Я в курсе

acroform.flatten ()

Но мне интересно, является ли это правильным методом удаления всех акроформ? Есть ли лучший способ сделать это, возможно, PDF меньше по размеру? Или быстрее удалить акроформу?

1 Ответ

1 голос
/ 02 апреля 2019

Позвоните PDDocument.getDocumentCatalog().setAcroForm(null), а также удалите все аннотации виджетов с каждой страницы:

    List<PDAnnotation> annotations = page.getAnnotations();
    List<PDAnnotation> newList = new ArrayList<>();
    for (PDAnnotation ann : annotations)
    {
        if (!(ann instanceof PDAnnotationWidget))
        {
            newList.add(ann);
        }
    }
    if (newList.isEmpty())
    {
        page.setAnnotations(null);
    }
    else
    {
        page.setAnnotations(annotations);
    }
...