I have a Pdf Form Generator java file that takes a pdf form that I have created and takes all the fields and
convert them into a Java file with all the fields in the pdf form. Sets all the methods
How do I run this code? as when I execute it nothing happens, I get a msg Press any key to continue...
Here is the Pdf Generator Java file
import java.io.*;
import java.util.*;
import com.lowagie.text.pdf.*;
public class PdfFormGenerator {
private String className;
private String formName;
private StringBuffer generatedClass = new StringBuffer();
private String classLocation = Constants.CLASS_LOCATION;
private String formLocation = Constants.FORM_LOCATION;
public PdfFormGenerator(String formName, String className){
//this.formName = formLocation + formName; //gas_safety_cert_REGP46.pdf
this.formName = formName;
this.className = className;
try{
//get the field names
PdfReader reader = new PdfReader(formName);
PdfStamper stamp = new PdfStamper(reader, new ByteArrayOutputStream());
AcroFields form = stamp.getAcroFields();
HashMap formFields = form.getFields();
// generate a class
Set formFieldNames = new TreeSet(formFields.keySet());
Iterator nameIterator = formFieldNames.iterator();
generatedClass.append(clsStart()); // Top of class code
generatedClass.append(construct());
StringBuffer methods = new StringBuffer();
String initMembers = new String();
//
methods.append(headerComment("set methods"));
methods.append("\n public void setPdfTemplateName(String s) {\n");
methods.append("\n this.pdfTemplateName = s;\n }\n");
// loop through all fieldnames in the pdf template
while(nameIterator.hasNext()){
String pdfFieldName = (String) nameIterator.next();
String javaName = pdfFieldName;
//convert irs fieldnames into something java can use in a method name
if(javaName.indexOf('-')>0){
javaName = javaName.replaceAll("-", "Field");
}
methods.append(setMethod(javaName, pdfFieldName));
initMembers += initMember(javaName);
}
methods.append(headerComment("get methods"));
methods.append("\n public HashMap getData() {\n return data;\n }\n");
methods.append("\n public String getPdfTemplateName() {\n return pdfTemplateName;\n }\n");
generatedClass.append(methods);
generatedClass.append("}");
}catch(Exception ex){
ex.printStackTrace();
}
clsStart();
}
private String clsStart() {
String s = "package bre.homeinspector;";
s+="\n\nimport java.util.*;";
s+="\n\npublic class " + className + " implements PdfForm{";
s+="\n\n private HashMap data = new HashMap();";
//s+="\n private String pdfTemplateName = \""+formLocation+formName+"\";\n";
//s+="\n private String pdfTemplateName = Constants.PHYSICAL_FILE_PATH + " + "\"forms/" + formName + "\";\n";
s+="\n private String pdfTemplateName = Constants.DEFAULT_FORM_TEMPLATE;\n";
return s;
}
private String construct() {
String s = "\n public " + className + "() {\n }";
return s;
}
public String initMember(String fieldName) {
String s = "\n " + fieldName + " = new String();";
return s;
}
public String getMethod(String javaName, String value) {
String s = new String();
s = headerComment("Returns the value of "+value);
s += "\n public String get"+ cap(javaName)+"() {";
s += "\n return (String)data.get(\""+value + "\");\n }";
return s;
}
private String cap(String s) {
return s.substring(0,1).toUpperCase() + s.substring(1);
}
private String headerComment(String text) {
return " \n /**\n * "+text+"\n */";
}
public String setMethod(String javaName, String value) {
String z = new String();
z = headerComment("Sets the value of "+value);
z += "\n public void set"+ cap(javaName) +"(String value) {";
z += "\n data.put(\""+value+"\", value);\n }\n";
return z;
}
public void writeToFiles() throws Exception {
FileWriter fw = new FileWriter(classLocation + className + ".java");
fw.write(generatedClass.toString());
fw.close();
return;
}
public static void main(String[] args){
try{
PdfFormGenerator gen = new PdfFormGenerator(args[0], args[1]);
gen.writeToFiles();
}catch(Exception ex){
System.out.println("PdfFormGenerator : " + ex.getMessage());
ex.printStackTrace();
}
}
}
Thanks in advance,
Zub