internal virtual PdfDictionary FillAndGetOcPropertiesDictionary() { if (ocProperties != null) { ocProperties.FillDictionary(false); GetPdfObject().Put(PdfName.OCProperties, ocProperties.GetPdfObject()); ocProperties = null; } if (GetPdfObject().GetAsDictionary(PdfName.OCProperties) == null) { PdfDictionary pdfDictionary = new PdfDictionary(); pdfDictionary.MakeIndirect(GetDocument()); GetDocument().GetCatalog().GetPdfObject().Put(PdfName.OCProperties, pdfDictionary); } return(GetPdfObject().GetAsDictionary(PdfName.OCProperties)); }
protected void ManipulatePdf(String dest) { PdfDocument pdfDoc = new PdfDocument(new PdfReader(SRC), new PdfWriter(dest)); PdfCatalog catalog = pdfDoc.GetCatalog(); PdfOCProperties ocProps = catalog.GetOCProperties(true); PdfDictionary occd = (PdfDictionary)ocProps.GetPdfObject().Get(PdfName.D); PdfArray order = occd.GetAsArray(PdfName.Order); PdfObject nestedLayers = order.Get(0); PdfObject nestedLayerArray = order.Get(1); PdfObject groupedLayers = order.Get(2); PdfObject radioGroup = order.Get(3); order.Set(0, radioGroup); order.Set(1, nestedLayers); order.Set(2, nestedLayerArray); order.Set(3, groupedLayers); pdfDoc.Close(); }