您不是在告訴我們您是否需要一種手動更改對齊方式(使用帶有GUI的工具)或編程方式(使用iText)的解決方案。
如果您想手動更改字段的對齊方式,只需在Adobe Acrobat中打開PDF模板(表單),然後選擇更改AcroForm字段的選項。從左向右更改對齊方式。
如果您想以編程方式更改對齊方式,請告訴我們您是否使用iText 7(您應該)或iText 5(您可能會)。
如果您使用的iText 7,排列設置是這樣的:
PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDoc, true);
Map<String, PdfFormField> fields = form.getFormFields();
PdfFormField field;
field = fields.get("personal.name");
field.setJustification(PdfFormField.ALIGN_LEFT);
field.setValue("Test");
field = fields.get("personal.loginname");
field.setJustification(PdfFormField.ALIGN_CENTER);
field.setValue("Test");
field = fields.get("personal.password");
field.setJustification(PdfFormField.ALIGN_RIGHT);
field.setValue("Test");
field = fields.get("personal.reason");
field.setValue("Test");
pdfDoc.close();
也How to align AcroFields?看到官方iText的常見問題。
如果您使用的iText 5,排列設置是這樣的:
PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();
AcroFields.Item item;
item = form.getFieldItem("personal.name");
item.getMerged(0).put(PdfName.Q, new PdfNumber(PdfFormField.Q_LEFT));
item = form.getFieldItem("personal.loginname");
item.getMerged(0).put(PdfName.Q, new PdfNumber(PdfFormField.Q_CENTER));
item = form.getFieldItem("personal.password");
item.getMerged(0).put(PdfName.Q, new PdfNumber(PdfFormField.Q_RIGHT));
form.setField("personal.name", "Test");
form.setField("personal.loginname", "Test");
form.setField("personal.password", "Test");
form.setField("personal.reason", "Test");
stamper.close();
reader.close();
也How to align AcroFields?看到官方iText的常見問題。
正如您所看到的,iText 7代碼更優雅,更易於理解。
您是否閱讀過文檔?你在使用iText 5還是iText 7? –