/*
 * Created on Jan 10, 2007
 */
package com.ubs.ifop.application.ea.core.bsv.impl;

import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.List;

import com.lowagie.text.Element;
import com.lowagie.text.PageSize;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfStamper;

/**
 * @author junxiongong
 */
public class Test {

    public static void main(String[] args) {
        System.out.println("Add watermarks and pagenumbers");
        try {
            PdfReader reader = new PdfReader("D:/testFolder/toc.pdf");
            int n = reader.getNumberOfPages();
            // create a stamper that will copy the document to a new file
            PdfStamper stamp = new PdfStamper(reader, new FileOutputStream("D:/testFolder/toc_result.pdf"));
            // adding some metadata
            HashMap moreInfo = new HashMap();
            moreInfo.put("Author", "Bruno Lowagie");
            stamp.setMoreInfo(moreInfo);
            // adding content to each page
            int i = 0;
            String encoding = "Identity-H";
            String fontName = "D:/workspace/ea-8_0_0/data/fonts/Ftl_____.ttf";
            
            PdfContentByte under;
            PdfContentByte over;
//            Image img = Image.getInstance("watermark.jpg");
            
            BaseFont bf = BaseFont.createFont(fontName, encoding, BaseFont.NOT_EMBEDDED);
//            img.setAbsolutePosition(200, 400);
            while (i < n) {
                i++;
                // watermark under the existing page
                under = stamp.getUnderContent(i);
//                under.addImage(img);
                // text over the existing page
                over = stamp.getOverContent(i);
                over.beginText();
                over.setFontAndSize(bf, 8);
                over.setTextMatrix(30, 30);
                over.showText("page " + i);
                over.setFontAndSize(bf, 8);
                over.showTextAligned(Element.ALIGN_LEFT, "DUPLICATE", 450, 20, 0);
                over.endText();
            }
            // adding an extra page
            stamp.insertPage(1, PageSize.A4);
            over = stamp.getOverContent(1);
            over.beginText();
            over.setFontAndSize(bf, 18);
            over.showTextAligned(Element.ALIGN_LEFT, "DUPLICATE OF AN EXISTING PDF DOCUMENT", 30, 600, 0);
            over.endText();
            // adding a page from another document
//            PdfReader reader2 = new PdfReader("SimpleAnnotations1.pdf");
//            under = stamp.getUnderContent(1);
//            under.addTemplate(stamp.getImportedPage(reader2, 3), 1, 0, 0, 1, 0, 0);
            // closing PdfStamper will generate the new PDF file
            stamp.close();
        }
        catch (Exception de) {
            de.printStackTrace();
        }

    }


}
