2017-06-03 4 views
0

Ich versuche, PDF-Felder an die erste in der Zeile auszurichten. Ich kann Felder und ihre Position bekommen. Ich bin auch in der Lage, es lokal zu ändern, aber wenn ich pdf speichere, erscheinen die Felder auf der gleichen Position. Dies ist der Code:wie pdf-Feld mit pdfbox verschieben?

PDDocument pdfDocument = PDDocument.load(new File("MyFile")); 
PDDocumentCatalog docCatalog = pdfDocument.getDocumentCatalog(); 
PDAcroForm acroForm = docCatalog.getAcroForm(); 
String fieldName = "MyField"; 
PDField f = acroForm.getField(fieldName); 
PDRectangle r = f.getWidgets().get(0).getRectangle(); 
r.setLowerLeftX(10); 
r.setLowerLeftY(10); 
r.setUpperRightX(10); 
r.setUpperRightY(10); 

pdfDocument.save(new File("MyModifiedFile")); 
pdfDocument.close(); 
+1

Wenn meine Antwort nicht hilft, dann klären Sie bitte, welche PDFBox-Version Sie verwenden, und laden Sie die PDF-Datei irgendwo hoch. –

Antwort

1

Sie haben das modifizierte Rechteck auf das Widget neu zuzuordnen:

f.getWidgets().get(0).setRectangle(r); 

Denn im Gegensatz zu dem Widget, wird das Rechteck nicht von den Strukturen im PDF gesichert.