Я написал форму с LibreOffice, которая включает в себя некоторые именованные поля для заполнения через PdfBox.Поля правильно настроены с выравниванием текста (все по центру по левому краю), но PdfBox просто игнорирует вертикальное выравнивание.Как на текстовых полях, так и на этикетках.Поля выравниваются снизу, а метки сверху.Помимо оптической разницы в представлении, значения полей также обрезаются строчными буквами, такими как "g" и т. Д.
Я бы предоставил изображение, но у меня недостаточно репутации ...
При условии, что я не могу быть единственным с этой проблемой, я нашел этот ответ здесь на SO Как (горизонтально) выровнять текст PDTextField в PDFBox? .Упоминается функция, которая предоставляет эту функцию для горизонтального выравнивания
textBox.setQ(PDTextField.QUADDING_CENTERED);
Я проверил это, и оно работает.
Общий вызов в моей программе довольно прост:
PDDocumentCatalog docCatalog = _pdf.getDocumentCatalog();
PDAcroForm acroForm = docCatalog.getAcroForm();
PDTextField field = (PDTextField) acroForm.getField(name);
if (field != null)
{
field.setQ(PDTextField.QUADDING_LEFT);
field.setValue(value);
}
else
{
LOGGER.log(Level.ERROR, "No field found with name:" + name);
}
К сожалению (или из-за глупости с моей стороны; я виню в этом температуру), я не нашел способа заставить PdfBox выполнить какие-либо действия на вертикальной оси.
Любая помощь будет очень полезной.оценили.Спасибо.
РЕДАКТИРОВАТЬ:
В соответствии с запросом здесь приводится пример (не настоящая версия, потому что это документ с работы - тем не менее, это та же конструкция, что иоригинал):
https://drive.google.com/file/d/1JKyuFqkb9B8Q9M61uxncAJXzMOo7zvJ5/view?usp=sharing
Поле с именем err_desc
.Также я предоставил в документе pdf изображение результата в оригинальной заполненной форме.
Я также попытался просто увеличить вертикальное пространство текстового поля.К сожалению, это не сработало, так как текст, кажется, придерживался дна и просто оставлял больше места над текстом.