Vous ne nous dites pas si vous voulez une solution dans laquelle vous modifiez l'alignement manuellement (en utilisant un outil avec une interface graphique) ou par programmation (en utilisant iText).
Si vous souhaitez modifier manuellement l'alignement d'un champ, ouvrez le modèle PDF (le formulaire) dans Adobe Acrobat et sélectionnez l'option permettant de modifier les champs AcroForm. Changez l'alignement de gauche à droite.
Si vous souhaitez modifier l'alignement par programme, vous devez nous indiquer si vous utilisez iText 7 (ce qui est normal) ou iText 5 (ce que vous pourriez faire).
Si vous utilisez iText 7, l'alignement est défini comme ceci:
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();
Voir aussi How to align AcroFields? dans la FAQ officielle iText.
Si vous utilisez iText 5, l'alignement est défini comme ceci:
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();
Voir aussi How to align AcroFields? dans la langue officielle iText FAQ.
Comme vous pouvez le voir, le code iText 7 est plus élégant et plus facile à comprendre.
Avez-vous lu la documentation? Utilisez-vous iText 5 ou iText 7? –