import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import wkc.pdf.PdfException;
import wkc.pdf.tool.Report;
import wkc.pdf.tool.ReportException;

public class OrderFormFin {
	private static File FORM_DIRECTORY_ROOT = new File("../resources/form");
	private static File OUTPUT_DIRECTORY_ROOT = new File(".");

	public static void main(String[] args) throws IOException, ReportException, PdfException {
		File outPdfFile = new File(OUTPUT_DIRECTORY_ROOT, "OrderFormFin.pdf");
		File formFile = new File(FORM_DIRECTORY_ROOT, "template.pdf");
		File datFile = new File(FORM_DIRECTORY_ROOT, "template.dat");
		FileOutputStream fout = new FileOutputStream(outPdfFile);
		Report report = null;
		try {
			//reportファイルをつくる。
			report = new Report(formFile, datFile, fout);
			report.createPage(1);
			report.putFieldData("xFormType", "お客様控え");
			report.putFieldData("xGram.0", "0");
			report.putFieldData("xGram.1", "0");
			report.putFieldData("xGram.2", "1");
			report.putFieldData("xGram.3", "0");
			report.putFieldData("xGram.4", "1");
			report.putFieldData("xGram.5", "0");
			report.putFieldData("xGram.6", "0");
			report.putFieldData("xGram.7", "0");
			report.putFieldData("xGram.8", "0");
			report.putFieldData("xGram.9", "0");
			report.putFieldData("xAmountC.0", "0");
			report.putFieldData("xAmountC.1", "0");
			report.putFieldData("xAmountC.2", "490");
			report.putFieldData("xAmountC.3", "0");
			report.putFieldData("xAmountC.4", "1,350");
			report.putFieldData("xAmountC.5", "0");
			report.putFieldData("xAmountC.6", "0");
			report.putFieldData("xAmountC.7", "0");
			report.putFieldData("xAmountC.8", "0");
			report.putFieldData("xAmountC.9", "0");
			report.putFieldData("xNumber.0", "0");
			report.putFieldData("xNumber.1", "0");
			report.putFieldData("xNumber.2", "0");
			report.putFieldData("xNumber.3", "0");
			report.putFieldData("xNumber.4", "0");
			report.putFieldData("xNumber.5", "1");
			report.putFieldData("xNumber.6", "0");
			report.putFieldData("xNumber.7", "0");
			report.putFieldData("xNumber.8", "0");
			report.putFieldData("xAmountA.0", "0");
			report.putFieldData("xAmountA.1", "0");
			report.putFieldData("xAmountA.2", "0");
			report.putFieldData("xAmountA.3", "0");
			report.putFieldData("xAmountA.4", "0");
			report.putFieldData("xAmountA.5", "1,700");
			report.putFieldData("xAmountA.6", "0");
			report.putFieldData("xAmountA.7", "0");
			report.putFieldData("xAmountA.8", "0");
			report.putFieldData("xAllAmount", "3,540");
			report.putFieldData("xPayment.0", (String) null); //記述しなくてもよい
			report.putFieldData("xPayment.1", (String) null); //記述しなくてもよい
			report.putFieldData("xPayment.2", (String) null); //記述しなくてもよい
			report.putFieldData("xCard.0", (String) null); //記述しなくてもよい
			report.putFieldData("xCard.1", (String) null); //記述しなくてもよい
			report.putFieldData("xCard.2", (String) null); //記述しなくてもよい
			report.putFieldData("xCard.3", (String) null); //記述しなくてもよい
			report.putFieldData("xCardNo.0", "1234");
			report.putFieldData("xCardNo.1", "5678");
			report.putFieldData("xCardNo.2", "9123");
			report.putFieldData("xCardNo.3", "4567");
			report.putFieldData("xCardTermY", "2008");
			report.putFieldData("xCardTermM", "08");
			report.putFieldData("xCardName", "山田 太郎");
			report.putFieldData("xSendDay.0", (String) null); //記述しなくてもよい
			report.putFieldData("xSendDay.1", (String) null); //記述しなくてもよい
			report.putFieldData("xSendDay.2", (String) null); //記述しなくてもよい	
			report.putFieldData("xSendTime.0", (String) null); //記述しなくてもよい	
			report.putFieldData("xSendTime.1", (String) null); //記述しなくてもよい	
			report.putFieldData("xSendTime.2", (String) null); //記述しなくてもよい	
			report.putFieldData("xYear", "2003");
			report.putFieldData("xMonth", "12");
			report.putFieldData("xDay", "29");
			report.putFieldData("xCustomerName", "山田 太郎");
			report.putFieldData("xCustomerNo", "1234567");
			report.putFieldData("xPostCode", "133-0061");
			report.putFieldData("xAddress", "東京都江東区南砂町5-7-21");
			report.putFieldData("xPhoneNo", "03-1234-5678");
			report.putFieldData("xFree", "上記電話番号でつながらない場合は下記番号におねがいします。");
			
			report.close();
			report = null;
		} finally {
			if (report != null) {
				try {
					//必ずclose()を呼びます。
					report.close();
				} catch (ReportException e) {
					//例外処理
				}

			}
		}
	}
}