/*
 * このソースコードは blanco Frameworkにより自動生成されました。
 */
package blanco.sample.pdf.report;

import java.io.OutputStream;

import blanco.pdf.page.BlancoPdfPageUtil;
import blanco.pdf.page.BlancoPdfPageWriter;
import blanco.pdf.page.valueobject.BlancoPdfPageDef;
import blanco.pdf.valueobject.BlancoPdfMetrix;
import blanco.pdf.valueobject.BlancoPdfSetting;
import blanco.sample.pdf.report.items.Yoko01PdfReportItems;

import com.lowagie.text.pdf.PdfWriter;

/**
 * PDF レポート。
 */
public class Yoko01PdfReport {
    /**
     * ページ定義オブジェクト。
     */
    private BlancoPdfPageDef fPageDef;

    /**
     * ページ・ライター・オブジェクト。
     */
    private BlancoPdfPageWriter fPageWriter;

    /**
     * 1 ページ分のデータをセットします。
     *
     * @param pdfSetting PDF 項目群。
     * @param outStream 出力ストリーム。
     */
    public Yoko01PdfReport(final BlancoPdfSetting pdfSetting, final OutputStream outStream) {
        fPageDef = BlancoPdfPageUtil.read(pdfSetting, "yoko01");
        fPageWriter = new BlancoPdfPageWriter(pdfSetting.getConfPath(), fPageDef, outStream);
    }

    /**
     * 1 ページ分のデータをセットします。
     *
     * @param pdfItems PDF 項目群。
     */
    public void writeItems(final Yoko01PdfReportItems pdfItems) {
        final BlancoPdfMetrix metrix = new BlancoPdfMetrix();
        metrix.setFont("mincho");
        metrix.setFontSize(12);
        fPageWriter.drawText(144.0f, 144.0f, pdfItems.getField00(), metrix);
        metrix.setFont("mincho");
        metrix.setFontSize(12);
        fPageWriter.drawText(72.0f, 72.0f, pdfItems.getField01(), metrix);
        metrix.setFont("mincho");
        metrix.setFontSize(24);
        fPageWriter.drawText(144.0f, 72.0f, pdfItems.getField02(), metrix);
        metrix.setFont("mincho");
        metrix.setFontSize(24);
        fPageWriter.drawText(144.0f, 72.0f, pdfItems.getField03(), metrix);
    }

    /**
     * 改ページします。
     */
    public void nextPage() {
        fPageWriter.nextPage();
    }

    /**
     * グリッド・シートを描画します。
     */
    public void drawGridSheet() {
        fPageWriter.drawGridSheet();
    }

    /**
     * クローズします。
     */
    public void close() {
        fPageWriter.close();
    }

    /**
     * PDF ライターを取得します。
     *
     * @return 内部的に利用しているライターー。
     */
    @Deprecated
    public PdfWriter getPdfWriter() {
        return fPageWriter.getWriter();
    }
}
