Esempio n. 1
0
 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));
 }
Esempio n. 2
0
        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();
        }