
import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.*;
import com.lowagie.text.pdf.*;


class MyPageEvents extends PdfPageEventHelper {
    PdfContentByte cb;
    BaseFont bf = null;
    PdfTemplate template;
    String act = "";
    PdfImportedPage pagina_sfondo;
    int ultima_pagina_sfondo = -1;
    public void onOpenDocument(PdfWriter writer, Document document) {
        try {
            bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
            cb = writer.getDirectContent();
		    PdfReader pagine_sfondo = new PdfReader("page7.pdf");	 
			pagina_sfondo = writer.getImportedPage(pagine_sfondo, 1);
        }
        catch(DocumentException de) {
        }
        catch(IOException ioe) {
        }
    }

    // we override the onStartPage method
    public void onStartPage(PdfWriter writer, Document document) {
		   System.out.println("Aggiungo la pagina di sfondo nella pagina "+document.getPageNumber());
           cb.addTemplate(pagina_sfondo, 1f, 0, 0, 1f, 0, 0);
    }
}
public class event_test {
    
    public static void main(String[] args) {
        
        
        // step 1: creation of a document-object
        Document document = new Document(PageSize.A4, 100, 100, 100, 500);

        try {
            PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("event_test.pdf"));
            MyPageEvents events = new MyPageEvents();
            writer.setPageEvent(events);
            document.open();
            PdfContentByte cb = writer.getDirectContent();
            Paragraph paragraph1 = new Paragraph();
            paragraph1.setAlignment(Element.ALIGN_JUSTIFIED);
            for (int i = 0; i < 30; i++) {
                paragraph1.add("Hello World, Hello Sun, Hello Moon, Hello Stars, Hello Sea, Hello Land, Hello People. ");
            }
            System.out.println("Aggiungo il paragrafo");

            BaseFont bf = BaseFont.createFont("Helvetica", "winansi", false, false, null, null);
            cb.beginText();
            cb.setFontAndSize(bf, 16);
            cb.showTextAligned(PdfContentByte.ALIGN_LEFT, 
            "Hello World, Hello Sun, Hello Moon, Hello Stars, Hello Sea, Hello Land, Hello People. Hello World, Hello Sun, Hello Moon, Hello Stars, Hello Sea, Hello Land, Hello People. "	, 1, 700, 0); 
            cb.endText(); 	 
            document.add(paragraph1);

        }
        catch(DocumentException de) {
            System.err.println(de.getMessage());
        }
        catch(IOException ioe) {
            System.err.println(ioe.getMessage());
        }
        
        // step 5: we close the document
        document.close();
    }
}
