Java での PDF からフォームの削除

これらの例は、フィールド値を変更するだけではなく、ページからフォームリソースを削除します。

ページからすべての Form リソースの削除

選択したページのすべての Form リソースを一度の操作で削除する必要がある場合は、このサンプルを使用してください。

  1. ソース PDF の Document を開いてください。
  2. XFormCollection にアクセスしてください。
  3. コレクションをクリアし、更新されたドキュメントを保存してください。
public static void removeAllForms(Path inputFile, int pageNum, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        XFormCollection forms = document.getPages().get_Item(pageNum).getResources().getForms();
        forms.clear();
        document.save(outputFile.toString());
    }
}

特定のフォームリソースの削除

Typewriter フォームなど、選択されたフォームリソースのみを削除する必要がある場合に、この例を使用してください。

  1. ソース PDF の Document を開いてください。
  2. XFormCollection にアクセスしてください。
  3. 削除したい XForm リソースをフィルタリングし、コレクションから削除してください。
  4. 更新した PDF の Document を保存してください。
public static void removeSpecifiedForm(Path inputFile, int pageNum, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        XFormCollection forms = document.getPages().get_Item(pageNum).getResources().getForms();
        List<String> formNames = new ArrayList<>();
        for (XForm form : forms) {
            if ("Typewriter".equals(form.getIT()) && "Form".equals(form.getSubtype())) {
                formNames.add(forms.getFormName(form));
            }
        }
        for (String formName : formNames) {
            forms.delete(formName);
        }
        document.save(outputFile.toString());
    }
}