TwoCustPDF.java Source code

Java tutorial

Introduction

Here is the source code for TwoCustPDF.java

Source

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.*;

//The same as PDFHandler, except it is used when the aps customer and utility customer are two different people.
public class TwoCustPDF {

    public static void createfile(File inputfile, Customer myCust, String SecondCust, Inverter myInvert,
            ExtraData mydata, Preparer myPrep, Module myMod) throws DocumentException, IOException {
        String[] LastFirst;
        LastFirst = myCust.getName().split(" ");
        String homeDir = System.getProperty("user.home");
        String separator = System.getProperty("file.separator");
        String INPUTFILENAME = inputfile.getPath();
        String inputFileNameShort = inputfile.getName();
        inputFileNameShort = inputFileNameShort.substring(0, inputFileNameShort.lastIndexOf('.'));
        String OUTPUTFILENAME = homeDir + separator + "Dropbox" + separator + "Utility and Permiting" + separator
                + "1 Utility Submissions" + separator + LastFirst[LastFirst.length - 1] + ", " + LastFirst[0] + " "
                + "(" + myCust.getState() + ")" + separator + inputFileNameShort + "-" + myCust.getName() + ".pdf";
        File outfile = new File(OUTPUTFILENAME);
        outfile.getParentFile().mkdirs();
        if (!outfile.getParentFile().exists()) {
            boolean mkdirSts = outfile.getParentFile().mkdirs();
            GUI.instructions.setText(
                    String.format("%s creating Files for %s", mkdirSts ? "Success" : "Failure", myCust.getName()));
        }

        PdfReader reader = new PdfReader(INPUTFILENAME);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(OUTPUTFILENAME));
        AcroFields fields = stamper.getAcroFields();
        fields.setGenerateAppearances(true);
        fields.setField("Customer Name", SecondCust);
        fields.setField("Second Customer Name", myCust.getName());
        fields.setField("Account Number", mydata.getAccountNumber());
        fields.setField("Customer Street Address", myCust.getStreetAddress());
        fields.setField("Customer City", myCust.getCity());
        fields.setField("Customer Zip Code", myCust.getZipCode());
        fields.setField("Customer Phone", myCust.getCellNumber());
        fields.setField("Customer E-mail", myCust.getEmail());
        fields.setField("Preparer Name", myPrep.getName());
        fields.setField("License Number", myPrep.getLicencenum());
        fields.setField("Preparer Street Address", myPrep.getStreetAddress());
        fields.setField("Preparer City", myPrep.getCity());
        fields.setField("Preparer Zip Code", myPrep.getZipCode());
        fields.setField("Preparer Phone#", myPrep.getWorkPhoneNumber());
        fields.setField("Preparer E-mail", myPrep.getEmail());
        fields.setField("Module Brand", myMod.getBrand());
        fields.setField("Module Number", myMod.getNumber());
        fields.setField("Module qty", myMod.getQuantityString());
        fields.setField("ptc rating", myMod.getptcRating());
        fields.setField("Array Azimuth", myMod.getArrayAzimuth());
        fields.setField("Inverter Brand", myInvert.getBrand());
        fields.setField("Inverter Number", myInvert.getNumber());
        fields.setField("Inverter Efficiency", myInvert.getefficiencyString());
        fields.setField("DC kiloWatts", myMod.getDCkiloWatts() + "kW DC");
        fields.setField("Complete Date", mydata.getCompleteDate());
        fields.setField("Rebate Amount", mydata.getRebateAmount());
        fields.setField("Customer Address", myCust.getFullAddress());
        fields.setField("Array Tilt degrees", myMod.getArrayTilt());
        fields.setField("Customer + Customer Address", SecondCust + " " + myCust.getFullAddress());
        fields.setField("Preparer Address", myPrep.getFullAddress());
        fields.setField("AC kiloWatt", myInvert.getACKiloWatts());
        fields.setField("AC Export", mydata.getACExport());
        fields.setField("Amperage Rating", myInvert.getAmperage());
        fields.setField("Customer City, State, Zip", myCust.getCityStateZip());
        fields.setField("Inverter Name + Brand + Quantity", myInvert.getInverterNameBrandQty());
        fields.setField("Module Name + Brand + Quantity", myMod.getNumberBrandQty());
        fields.setField("Racking", myMod.getRacking());
        fields.setField("System Production", mydata.getProduction());
        fields.setField("System Cost", mydata.getCost());
        fields.setField("Date", mydata.getTodayDate());
        fields.setField("Module Watts", myMod.getWatts() + " " + "Watts");
        fields.setField("Price Per Watt", mydata.getPricePerWatt());
        stamper.close();
    }

}