/// <summary>
        /// Gets the order of the layers in which they will be displayed in the layer view panel,
        /// including nesting.
        /// </summary>
        private static void GetOCGOrder(PdfArray order, PdfLayer layer)
        {
            if (!layer.IsOnPanel())
            {
                return;
            }
            if (layer.GetTitle() == null)
            {
                order.Add(layer.GetPdfObject().GetIndirectReference());
            }
            IList <PdfLayer> children = layer.GetChildren();

            if (children == null)
            {
                return;
            }
            PdfArray kids = new PdfArray();

            if (layer.GetTitle() != null)
            {
                kids.Add(new PdfString(layer.GetTitle(), PdfEncodings.UNICODE_BIG));
            }
            foreach (PdfLayer child in children)
            {
                GetOCGOrder(kids, child);
            }
            if (kids.Size() > 0)
            {
                order.Add(kids);
            }
        }