PDDocument overlay1Doc = PDDocument.load(overlay1);
try
{
LayerUtility layerUtil = new LayerUtility(targetDoc);
PDFormXObject form = layerUtil.importPageAsForm(overlay1Doc, 0);
PDPage targetPage = targetDoc.getPage(0);
layerUtil.wrapInSaveRestore(targetPage);
AffineTransform at = new AffineTransform();
PDOptionalContentGroup ocg = layerUtil.appendFormAsLayer(
targetPage, form, at, "overlay");
//This is how the layer could be disabled after adding it
//catalog.getOCProperties().setGroupEnabled(ocg.getName(), false);
targetDoc.save(targetFile.getAbsolutePath());
}
finally
{
targetDoc.close();
overlay1Doc.close();
}
PDDocument doc = PDDocument.load(targetFile);
try
{
PDDocumentCatalog catalog = doc.getDocumentCatalog();
//OCGs require PDF 1.5 or later
//TODO need some comfortable way to enable/check the PDF version
//assertEquals("%PDF-1.5", doc.getDocument().getHeaderString());
//assertEquals("1.5", catalog.getVersion());
PDPage page = doc.getPage(0);
PDOptionalContentGroup ocg = (PDOptionalContentGroup)page.getResources()
.getProperties(COSName.getPDFName("MC0"));
assertNotNull(ocg);
assertEquals("overlay", ocg.getName());
PDOptionalContentProperties ocgs = catalog.getOCProperties();