所需依赖
<dependency><groupId>com.itextpdf</groupId><artifactId>itext-core</artifactId><version>9.0.0</version><type>pom</type>
</dependency>
源码
public class PdfUtils {public static byte[] embedField(byte[] pdfBytes, String filedName, String fieldValue) {try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {PdfDocument pdfDoc = new PdfDocument(new PdfReader(new ByteArrayInputStream(pdfBytes)),new PdfWriter(baos));PdfObject pdfObject = pdfDoc.getPdfObject(1);PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);PdfFormField pdfFormField = new PdfFormField((PdfDictionary) pdfObject);pdfFormField.setFieldName(filedName);pdfFormField.setValue(fieldValue);pdfFormField.setFieldFlags(PdfFormField.FF_READ_ONLY);form.addField(pdfFormField);pdfDoc.close();return baos.toByteArray();} catch (Exception e) {throw new ServiceException(0, "嵌入PDF字段失败");}}public static String getField(byte[] pdfBytes, String filedName) {try (PdfDocument pdfDoc = new PdfDocument(new PdfReader(new ByteArrayInputStream(pdfBytes)))) {PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, false);if (form == null) {return null;}PdfFormField field = form.getField(filedName);if (field == null) {return null;}return field.getValueAsString();} catch (Exception e) {throw new ServiceException(0, "获取PDF字段处理失败");}}
}