Удаление форм из PDF в Java
Contents
[
Hide
]
Эти примеры удаляют ресурсы форм со страницы, а не просто изменяют значения полей.
Удаление всех ресурсов формы со страницы
Используйте этот пример, когда каждый ресурс формы на выбранной странице должен быть удалён в одной операции.
- Откройте исходный PDF в объекте Document.
- Получите доступ к XFormCollection для целевой страницы.
- Очистите коллекцию и сохраните обновлённый документ.
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());
}
}
Удаление конкретных ресурсов Form
Используйте этот пример, когда должны быть удалены только выбранные ресурсы Form, такие как формы Typewriter.
- Откройте исходный PDF в объекте Document.
- Получите доступ к XFormCollection для целевой страницы.
- Фильтруйте XForm ресурсы, которые вы хотите удалить, и удалите их из коллекции.
- Сохраните обновлённый 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());
}
}