Webdynpro iText interactive PDF form

401 views Asked by At

I'm working on a Java Webdynpro where I try to print out a Interactive PDF form. I've been following the tutorial on: http://itextpdf.com/

Now when I print my new PDF 'temp.pdf', it shows the template with the correct text but the field are still empty. Did I miss something in my code?

Code

public byte[] GetPDFFromFolder( java.lang.String folderPath )
{
//@@begin GetPDFFromFolder()

byte[] byteLink = new byte[4096];
IResource folder = null;
Content content = null;

try {
IResourceContext rctx =     ResourceFactory.getInstance().getServiceContext("cmadmin_service");
RID sisFolderRID = RID.getRID(folderPath);
folder = ResourceFactory.getInstance().getResource(sisFolderRID, rctx);
} catch (ResourceException e) {
e.printStackTrace();
}


StringBuilder bf = new StringBuilder();

try {
PdfWriter writer = null;

File file = new File("temp.pdf");

try {
FileOutputStream out = new FileOutputStream(file);
if (folder.isCollection()) {
ICollection folderColl = (ICollection) folder;
IResourceListIterator it = folderColl.getChildren().listIterator();

IResource res = it.next();
try {
try {

InputStream in = res.getContent().getInputStream();

PdfReader reader = new PdfReader(in);
try {

PdfStamper stamper = new PdfStamper(reader, out);


AcroFields form = stamper.getAcroFields();


if ("Document1.pdf".equals(res.getName())){
form.setField("TextField1Vertegenwoordigd", "Van Den Berghe Tim");
form.setField("TextField2Directeur", "341 - Carrefour Evere");
form.setField("TextField3Nr", "5588");
form.setField("TextField4RPR", "RPR waarde");
form.setField("TextField5BTW", "9999-999-999");
form.setField("TextField6Euro", "100");
form.setField("TextField7Periode", "8 maanden");
form.setField("TextField8Totaal", "133");
form.setField("TextField9Producten", "Cd - Eminem");
form.setField("TextField9Producten", "Bruin banket brood");
form.setField("TextField10Vanaf", "06/08/2013");
form.setField("TextField11Op", "06/09/2013");
form.setField("TextField12Te", "06/08/2013");
form.setField("TextField13Op", "06/09/2013");
} 
else {// doesn't matter}

stamper.close();
reader.close();
out.close();


FileInputStream inn = new FileInputStream(file);

byteLink = IOUtils.toByteArray(inn); 
} catch (DocumentException e) {
e.printStackTrace();
}
} catch (ContentException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} catch (ResourceException e) {
e.printStackTrace();
}


return byteLink;
//@@end
}
0

There are 0 answers