如何居中PDFormField的内容?

问题描述

假设我正在使用AcroForms填充PDF。

File blankDocument = new File("blank-document.pdf");
PDDocument document = PDDocument.load(blankDocument);
PDDocumentCatalog catalog = document.getDocumentCatalog();
PDAcroForm acroForm = catalog.getAcroForm();

for (PDFormField formField : acroForm.getFields()) {
    if (formField.getPartialName().equals("name")) {
         formField.setValue("Allan");
    }
}

document.save("filled_document.pdf");

是否可以将PDFormField内容居中?现在,它只是从左到右填充字段。

解决方法

之前调用setValue(),请执行以下操作:

if (formField instanceof PDVariableText)
{
    PDVariableText txtFormField = (PDVariableText) formField;
    txtFormField.setQ(PDVariableText.QUADDING_CENTERED);
}