Hi, > Am 02.05.2015 um 13:02 schrieb Tilman Hausherr <[email protected]>: > > Am 29.04.2015 um 14:26 schrieb [email protected]: >> >> Hello, >> >> when you add an AcroForm to a document that has a 90 degree orientation, >> does the form automatically have a 90 degree orientation? >> >> What about it fields? >> >> My problem with the code below is that the fields' data are printed >> vertically instead of horizontally. > > Seems not to be supported: > http://stackoverflow.com/questions/16952710/filling-landscape-pdf-with-pdfbox
I've created https://issues.apache.org/jira/browse/PDFBOX-2785 for that. @ Philippe - could you attach your form to that issue so that we have a sample as there are different ways that rotation can be defined. BR Maruan > > Tilman > > >> >> Many thanks. >> >> Philippe >> >> >> // Loop through CSV lines and retrieve each line's data >> for (Map<String, String> pdfLineTreeMap : csvDataArrayList) { >> >> // Retrieve template's catalog >> final PDDocumentCatalog templateCatalog = >> PDDocument.load(pdfTemplateFilePath).getDocumentCatalog(); >> // Retrieve its acroForm >> final PDAcroForm templateAcroForm = >> templateCatalog.getAcroForm(); >> >> // Get all template PDF's pages >> final List<PDPage> templateCatalogPages = >> templateCatalog.getAllPages(); >> // Get template document's first page >> final PDPage templateFirstPage = >> templateCatalogPages.get(0); >> LOGGER.info("Template page rotation " + >> templateFirstPage.getRotation()); >> >> // Add first page to final doc with filled out fields >> finalDoc.addPage(templateFirstPage); >> List<PDPage> pages = >> finalDoc.getDocumentCatalog().getAllPages(); >> final int pageCount = pages.size(); >> final PDPage lastPage = pages.get(pageCount - 1); >> LOGGER.info("last page rotation = " + >> lastPage.getRotation()); >> >> // Loop through PDF field names in pdfLineTreeMap (this >> map was previously >> // created to store the CSV data; its keys are equal to >> the >> // PDF field names) and set their respective values in >> PDF >> for (String fieldName : pdfLineTreeMap.keySet()) { >> >> final String fieldValue = >> pdfLineTreeMap.get(fieldName); >> // Try to retrieve the field in the template's >> acroForm with the same name >> // as the column in csvDataArrayList >> final PDField pDField = >> templateAcroForm.getField(fieldName); >> >> // field with same name in CSV as in PDF was >> found... >> if (pDField != null) { >> >> // Only circle non-empty insertion codes >> if (fieldName.indexOf("INSERT") >= 0 && >> fieldValue != null && fieldValue.length() > 0) { >> circleField(pDField, >> templateFirstPage); >> } >> // add increment to it's partial name >> pDField.setPartialName(fieldName + "-" >> + Integer.toString(csvLineCounter)); >> pDField.setValue(fieldValue.trim()); >> //pDField.setReadonly(true); >> >> finalDocFields.add(pDField); >> } >> >> } // end for fieldName >> >> // Page number is in templateAcroForm (but not in >> pdfLineTreeMap) >> final PDField pDPageField = >> templateAcroForm.getField("pagenumber"); >> if (pDPageField != null) { >> pDPageField.setPartialName("pagenumber" + >> Integer.toString(csvLineCounter)); >> >> pDPageField.setValue(Integer.toString(csvLineCounter + 1)); >> //pDPageField.setReadonly(true); >> finalDocFields.add(pDPageField); >> } >> >> // Stop at second CSV line for debugging !!!!! >> if (csvLineCounter == 2) { >> break; >> } >> >> ++csvLineCounter; >> >> } // end for CSV Lines >> >> // Create new form in final document >> final PDAcroForm finalDocAcroForm = new PDAcroForm(finalDoc); >> // Set final document's form >> finalDoc.getDocumentCatalog().setAcroForm(finalDocAcroForm); >> // Set form's fields >> finalDocAcroForm.setFields(finalDocFields); >> >> // Save final doc >> finalDoc.save(finalDocFilePath); >> finalDoc.close(); >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

