删除pdf中的acroform

时间:2019-04-01 20:29:32

标签: pdfbox

我正在使用removeField删除文档中的字段,但如何删除pdf中的完全acroform? 我知道

  

acroform.flatten()

但是我想知道这是否是删除所有杂技的正确方法吗?是否有更好的方法可以使pdf尺寸更小?还是更快地删除acroform?

1 个答案:

答案 0 :(得分:1)

调用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);
    }