pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maruan Sahyoun <sahy...@fileaffairs.de>
Subject Re: AcroForm orientation
Date Sun, 03 May 2015 07:17:04 GMT
Hi,
> Am 02.05.2015 um 13:02 schrieb Tilman Hausherr <THausherr@t-online.de>:
> 
> Am 29.04.2015 um 14:26 schrieb phiroc@free.fr:
>> 
>> 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: users-unsubscribe@pdfbox.apache.org
>> For additional commands, e-mail: users-help@pdfbox.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message