List of usage examples for com.lowagie.text.pdf FdfReader FdfReader
public FdfReader(InputStream is) throws IOException
From source file:com.servoy.extensions.plugins.pdf_output.PDFProvider.java
License:Open Source License
/** * Convert a protected PDF form to a PDF document. * * @sample// w w w . j av a 2 s . c o m * var pdfform = plugins.file.readFile('c:/temp/1040a-form.pdf'); * //var field_values = plugins.file.readFile('c:/temp/1040a-data.fdf');//read adobe fdf values or * var field_values = new Array()//construct field values * field_values[0] = 'f1-1=John C.J.' * field_values[1] = 'f1-2=Longlasting' * var result_pdf_doc = plugins.pdf_output.convertProtectedPDFFormToPDFDocument(pdfform, 'pdf_password', field_values) * if (result_pdf_doc != null) * { * plugins.file.writeFile('c:/temp/1040a-flatten.pdf', result_pdf_doc) * } * * @param pdf_form the PDF Form to convert * @param pdf_password the password to use * @param field_values the field values to use */ public byte[] js_convertProtectedPDFFormToPDFDocument(byte[] pdf_form, String pdf_password, Object field_values) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfReader reader = new PdfReader(pdf_form, pdf_password != null ? pdf_password.getBytes() : null); PdfStamper stamp = new PdfStamper(reader, baos); if (field_values != null) { AcroFields form = stamp.getAcroFields(); if (field_values instanceof String) { FdfReader fdf = new FdfReader((String) field_values); form.setFields(fdf); } else if (field_values instanceof byte[]) { FdfReader fdf = new FdfReader((byte[]) field_values); form.setFields(fdf); } else if (field_values instanceof Object[]) { for (int i = 0; i < ((Object[]) field_values).length; i++) { Object obj = ((Object[]) field_values)[i]; if (obj instanceof Object[]) { Object[] row = (Object[]) obj; if (row.length >= 2) { Object field = row[0]; Object value = row[1]; if (field != null && value != null) { form.setField(field.toString(), value.toString()); } } // else if (row.length >= 3) // { // form.setField(field, value); // } } else if (obj instanceof String) { String s = (String) obj; int idx = s.indexOf('='); form.setField(s.substring(0, idx), s.substring(idx + 1)); } } } } stamp.setFormFlattening(true); stamp.close(); return baos.toByteArray(); } catch (Exception e) { Debug.error(e); throw new RuntimeException("Error converting pdf form to pdf document", e); //$NON-NLS-1$ } }