import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;

import wkc.pdf.Info;
import wkc.pdf.PdfBarcode;
import wkc.pdf.PdfException;
import wkc.pdf.tool.Report;
import wkc.pdf.tool.ReportException;

public class Jan extends Object {

  private static File FORM_DIRECTORY_ROOT = new File("../resources/form");
  private static File OUTPUT_DIRECTORY_ROOT = new File(".");
  private static String leftFieldNamePrefix = "xCode";

  public static void main(String[] args) throws IOException, ReportException, PdfException {
    File outPdfFile = new File(OUTPUT_DIRECTORY_ROOT, "jan.pdf");
    File formFile = new File(FORM_DIRECTORY_ROOT, "template3.pdf");
    File datFile = new File(FORM_DIRECTORY_ROOT, "template3.dat");
    FileOutputStream fout = new FileOutputStream(outPdfFile);
    try {
      Report report = new Report(formFile, datFile, fout);

      //*********** JAN8 *************************
      report.createPage(1);
      report.putFieldData("xLabel","JAN8\n12345670");
      PdfBarcode jan = report.createBarcode(PdfBarcode.JAN, "12345670");
      for (int i = 0; i < 12; i++) {
        report.putFieldData(leftFieldNamePrefix + i, jan);
      }

      //*********** JAN8(数字付) *************************
      report.createPage(1);
      report.putFieldData("xLabel","JAN8-OCR\n12345670");
      jan = report.createBarcode(PdfBarcode.JAN_OCR, "12345670");
      for (int i = 0; i < 12; i++) {
        report.putFieldData(leftFieldNamePrefix + i, jan);
      }

      //*********** JAN13 *********************************
      report.createPage(1);
      report.putFieldData("xLabel","JAN13\n412345678904");
      jan = report.createBarcode(PdfBarcode.JAN, "4912345678904",1.0f);
      for (int i = 0; i < 12; i++) {
        report.putFieldData(leftFieldNamePrefix + i, jan);
      }

      //*********** JAN13(数字付) *************************
      report.createPage(1);
      report.putFieldData("xLabel","JAN13-OCR\n412345678904");
      jan = report.createBarcode(PdfBarcode.JAN_OCR, "4912345678904",1.0f);
      for (int i = 0; i < 12; i++) {
        report.putFieldData(leftFieldNamePrefix + i, jan);
      }

      //***********文書情報の設定*************************
      Info info = report.getDocument().getInfo();
      info.setAuthor("川鉄情報システム Web/OO部 川鉄太郎");
      info.setTitle("JANサンプル");
      info.setCreationDate(Calendar.getInstance());
      info.setModDate(Calendar.getInstance());
      report.close();
    } finally {
      fout.close();
    }
  }
}