Код: Выделить всё
[INFO] +- com.openhtmltopdf:openhtmltopdf-core:jar:1.0.10:compile
[INFO] +- com.openhtmltopdf:openhtmltopdf-pdfbox:jar:1.0.10:compile
[INFO] | +- org.apache.pdfbox:pdfbox:jar:2.0.24:compile
[INFO] | | +- org.apache.pdfbox:fontbox:jar:2.0.24:compile
[INFO] | +- org.apache.pdfbox:xmpbox:jar:2.0.24:compile
Код: Выделить всё
private void populateFieldsWithData(Map data, PDAcroForm acroForm, List
fields) throws IOException {
data.forEach((key, value) -> {
PDField field = acroForm.getField(key);
acroForm.getFieldTree().iterator().forEachRemaining(pdField -> {
if (pdField.getFullyQualifiedName().equals(key)) {
try {
field.setValue(value);
field.setReadOnly(true);
fields.add(pdField);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
});
});
acroForm.flatten();
}
Я пробовал удалить acroForm.flatten(); . Если я это сделаю и нажму на текст в сгенерированном PDF-файле, текст будет скорректирован и будет выглядеть нормально. Но когда я нажимаю в другом месте сгенерированного PDF-файла, текст снова сжимается/сжимается.
Я пробовал добавить их перед acroForm.flatten();. Оба и по отдельности, но это не помогает.
Код: Выделить всё
acroForm.setNeedAppearances(true);
acroForm.refreshAppearances();
[img]https://i.sstatic.net /kEDjV2ub.png[/img]
Вот как будет выглядеть поле, если я введу тот же текст вручную в Acrobat Reader:

Подробнее здесь: https://stackoverflow.com/questions/785 ... compressed