Я использую pdfbox для раскрашивания pdf, но после вызова acroForm.flatten()
изображения не отображаются в полученном PDF.
Я перепробовал все предложения, доступные в интернете, удалил поля, удалил виджет, ни один из них не работает
List<InputStream> docs = new ArrayList<>();
for (String id : imageIdentifiers) {
Optional<Map> o = images.stream()
.filter(i ->id.equalsIgnoreCase((String) i.get("IMAGE_TYPE")))
.findFirst();
if (o.isPresent()) {
try {
PDDocument document = PDDocument.load(new File(template));
PDAcroForm form = document.getDocumentCatalog().getAcroForm();
List<PDField> fields = form.getFields();
List<PDField> txtFields = fields.stream()
.filter(textField)
.collect(Collectors.toList());
for (PDField field : txtFields) {
String value = getValue(values, field.getPartialName(), secondPassFields);
field.setValue(value);
field.setReadOnly(true);
}
PDField imageField = fields.stream()
.filter(imgField)
.findFirst()
.get();
fillImage(document, imageField, (String) o.get().get("IMAGE_URL"));
//document.getDocumentCatalog().getAcroForm().
setNeedAppearances(false);
//document.getDocumentCatalog().getAcroForm().flatten();
document.getDocumentCatalog().getAcroForm().setFields(Collections.<PDField>emptyList());
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
document.save(outputStream);
document.close();
InputStream in = new ByteArrayInputStream(outputStream.toByteArray());
docs.add(in);
} catch (Exception e) {
throw e;
}
}
}
Я хочу, чтобы PDF был не редактируемым, независимо от того, сглажен он или нет