package com.stpl.poc.itext;

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfSmartCopy;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PushbuttonField;

public class TicketTemplateReview {

	public static final String RESULT = "results/stpl/ticket.pdf";
	public static final String RIGHT_TEMPLATE = "results/stpl/right_ticket_detail_template.pdf";
	public static final String LEFT_TEMPLATE = "results/stpl/left_ticket_detail_template.pdf";
	public static final String RESOURCE = "results/stpl/ticket_detail_container_template.pdf";

	public static void main(String[] args) throws IOException,
			DocumentException, SQLException {

		TicketTemplateReview template = new TicketTemplateReview();

		//
		Document document = new Document();
		//
		PdfSmartCopy copy = new PdfSmartCopy(document, new FileOutputStream(
				RESULT));

		document.open();
		PdfReader reader;
		PdfStamper stamper = null;
		ByteArrayOutputStream baos = null;
		AcroFields form = null;
		baos = new ByteArrayOutputStream();
		reader = new PdfReader(RESOURCE);
		stamper = new PdfStamper(reader, baos);
		stamper.setFormFlattening(true);
		form = stamper.getAcroFields();

		PushbuttonField rightContainer = form
				.getNewPushbuttonFromField("right_container");
		PushbuttonField leftContainer = form
				.getNewPushbuttonFromField("left_container");
		PushbuttonField mainContainer = form
				.getNewPushbuttonFromField("container");
		rightContainer.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
		rightContainer.setProportionalIcon(true);

		leftContainer.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
		leftContainer.setProportionalIcon(true);

		mainContainer.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
		mainContainer.setProportionalIcon(true);
		mainContainer.setBackgroundColor(BaseColor.PINK);

		form.replacePushbuttonField("container", mainContainer.getField());
		stamper.close();
		reader = new PdfReader(baos.toByteArray());
		PdfImportedPage page = copy.getImportedPage(reader, 1);
		copy.addPage(page);

		document.close();
	}
}