Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

need help with pdf form creator java file?

807600Oct 31 2007 — edited Oct 31 2007
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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 28 2007
Added on Oct 31 2007
3 comments
237 views