Lors de l'exécution de ce code avec le PdfDocument n'ayant pas de source de lecture, il fonctionne correctement. Lorsque j'essaie de lire à partir d'un document PDF prédéfini, il cesse de créer le formulaire/les widgets, mais ajoute toujours le paragraphe comme prévu. Il n'y a pas d'erreur donnée. Est-ce que quelqu'un comprend pourquoi cela se passe?IText7 ne crée que des formulaires/widgets sur les nouveaux documents
Voici le code que je suis en cours d'exécution:
public class HelloWorld {
public static final String DEST = "sampleOutput.pdf";
public static final String SRC = "sample.pdf";
public static void main(String args[]) throws IOException {
File file = new File(DEST);
new HelloWorld().createPdf(SRC, DEST);
}
public void createPdf(String src, String dest) throws IOException {
//Initialize PDF reader and writer
PdfReader reader = new PdfReader(src);
PdfWriter writer = new PdfWriter(dest);
//Initialize PDF document
PdfDocument pdf = new PdfDocument(writer); //if i do (reader, writer) the widget isn't added to the first page anymore.
// Initialize document
Document document = new Document(pdf);
HelloWorld.addAcroForm(pdf, document);
//Close document
document.close();
}
public static PdfAcroForm addAcroForm(PdfDocument pdf, Document doc) throws IOException {
Paragraph title = new Paragraph("Test Form")
.setTextAlignment(TextAlignment.CENTER)
.setFontSize(16);
doc.add(title);
doc.add(new Paragraph("Full name:").setFontSize(12));
//Add acroform
PdfAcroForm form = PdfAcroForm.getAcroForm(doc.getPdfDocument(), true);
//Create text field
PdfTextFormField nameField = PdfFormField.createText(doc.getPdfDocument(),
new Rectangle(99, 753, 425, 15), "name", "");
form.addField(nameField);
return form;
}
}
Tout d'abord: merci de fournir un exemple de code. Il est tellement plus facile de répondre à une question quand les gens nous donnent un échantillon que nous pouvons compiler pour tester. J'ai essayé votre exemple et je n'ai pas pu reproduire le problème: le champ est ajouté correctement quand j'essaye votre code. J'utilise iText 7.0.1 et un fichier source avec le format A4. Pouvons-nous jeter un coup d'oeil à votre fichier source. Peut-être que la taille de la page est définie différemment. Si l'origine de votre système de coordonnées ('(0, 0)') n'est pas dans le coin inférieur gauche, vous pouvez obtenir le problème que vous décrivez. –
@BrunoLowagie Merci pour la réponse. Voici le fichier d'exemple, voir tout ce qui pourrait le rejeter? http://www.filedropper.com/sample_15 – Elliot
@BrunoLowagie Super idée avec l'origine. J'ai joué avec les coordonnées x et y et je pense que je mettais juste le widget hors de portée. Très appréciée! Réjouissez-vous d'utiliser l'outil plus. – Elliot