PDF Java Tutorial

import java.io.FileOutputStream;
import java.util.ArrayList;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfAction;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfLayer;
import com.lowagie.text.pdf.PdfWriter;
public class MainClass {
  public static void main(String[] args) throws Exception {
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
    writer.setPdfVersion(PdfWriter.VERSION_1_5);
    document.open();
    PdfLayer a1 = new PdfLayer("answer 1", writer);
    a1.setOn(false);
    BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
    PdfContentByte cb = writer.getDirectContent();
    cb.beginText();
    cb.setTextMatrix(50, 790);
    cb.setLeading(24);
    cb.setFontAndSize(bf, 18);
    cb.newlineShowText("This is a question?");
    cb.beginLayer(a1);
    cb.setRGBColorFill(0xFF, 0x00, 0x00);
    cb.newlineShowText("This is the answer");
    cb.resetRGBColorFill();
    cb.endLayer();
    cb.endText();
    ArrayList stateOn = new ArrayList();
    stateOn.add("ON");
    stateOn.add(a1);
    PdfAction actionOn = PdfAction.setOCGstate(stateOn, true);
    ArrayList stateOff = new ArrayList();
    stateOff.add("OFF");
    stateOff.add(a1);
    PdfAction actionOff = PdfAction.setOCGstate(stateOff, true);
    ArrayList stateToggle = new ArrayList();
    stateToggle.add("Toggle");
    stateToggle.add(a1);
    PdfAction actionToggle = PdfAction.setOCGstate(stateToggle, true);
    Phrase p = new Phrase("Change the state of the answers:");
    Chunk on = new Chunk(" on ").setAction(actionOn);
    p.add(on);
    Chunk off = new Chunk("/ off ").setAction(actionOff);
    p.add(off);
    Chunk toggle = new Chunk("/ toggle").setAction(actionToggle);
    p.add(toggle);
    document.add(p);
    document.close();
  }
}