catalog.setVersion("1.5");
//Create new page
PDPage page = new PDPage();
doc.addPage(page);
PDResources resources = page.getResources();
if( resources == null )
{
resources = new PDResources();
page.setResources( resources );
}
//Prepare OCG functionality
PDOptionalContentProperties ocprops = new PDOptionalContentProperties();
catalog.setOCProperties(ocprops);
//ocprops.setBaseState(BaseState.ON); //ON=default
//Create OCG for background
PDOptionalContentGroup background = new PDOptionalContentGroup("background");
ocprops.addGroup(background);
assertTrue(ocprops.isGroupEnabled("background"));
//Create OCG for enabled
PDOptionalContentGroup enabled = new PDOptionalContentGroup("enabled");
ocprops.addGroup(enabled);
assertFalse(ocprops.setGroupEnabled("enabled", true));
assertTrue(ocprops.isGroupEnabled("enabled"));
//Create OCG for disabled
PDOptionalContentGroup disabled = new PDOptionalContentGroup("disabled");
ocprops.addGroup(disabled);
assertFalse(ocprops.setGroupEnabled("disabled", true));
assertTrue(ocprops.isGroupEnabled("disabled"));
assertTrue(ocprops.setGroupEnabled("disabled", false));
assertFalse(ocprops.isGroupEnabled("disabled"));
//Add property lists to page resources
COSName mc0 = COSName.getPDFName("MC0");
COSName mc1 = COSName.getPDFName("MC1");
COSName mc2 = COSName.getPDFName("MC2");
resources.put(mc0, background);
resources.put(mc1, enabled);
resources.put(mc2, disabled);
//Setup page content stream and paint background/title
PDPageContentStream contentStream = new PDPageContentStream(doc, page, false, false);
PDFont font = PDType1Font.HELVETICA_BOLD;
contentStream.beginMarkedContentSequence(COSName.OC, mc0);