Reference Guide
GdPicture14 Namespace / GdPicturePDF Class / GetOCGCount Method
Example





In This Topic
    GetOCGCount Method (GdPicturePDF)
    In This Topic
    Returns the number of the optional content group (OCG) entries defined in the currently loaded PDF document.

    Optional Content Groups, also knows as Layers, are a very effective tool to control the visibility of the page content, that can be selectively viewed or hidden, by users or viewers.

    Syntax
    'Declaration
     
    
    Public Function GetOCGCount() As Integer
    public int GetOCGCount()
    public function GetOCGCount(): Integer; 
    public function GetOCGCount() : int;
    public: int GetOCGCount(); 
    public:
    int GetOCGCount(); 

    Return Value

    The number of OCG entries (layers) defined in the document. The GetStat method can be subsequently used to determine if this method has been successful.
    Remarks
    This method is only allowed for use with non-encrypted documents.

    It is recommend to use the GetStat method to identify the specific reason for the method's failure, if any.

    Example
    How to find out the number of layers defined in the PDF document and enumerate them subsequently.
    Dim oGdPicturePDF As New GdPicturePDF()
    Dim status As GdPictureStatus = oGdPicturePDF.LoadFromFile("test.pdf", False)
    If status = GdPictureStatus.OK Then
        Dim output As String = ""
        Dim ocgCount As Integer = oGdPicturePDF.GetOCGCount()
        status = oGdPicturePDF.GetStat()
        If status = GdPictureStatus.OK Then
            output = "The number of OCG layers: " + ocgCount.ToString()
            Dim OcgId As Integer = 0
            Dim title As String = ""
            Dim state As PdfOcgState = PdfOcgState.Undefined
            Dim onOff As Boolean = False
            For i As Integer = 0 To ocgCount - 1
                output = output + vbCrLf + "Nr." + (i + 1).ToString() + ": "
                OcgId = oGdPicturePDF.GetOCG(i)
                status = oGdPicturePDF.GetStat()
                If status = GdPictureStatus.OK Then
                    title = oGdPicturePDF.GetOCGTitle(OcgId)
                    status = oGdPicturePDF.GetStat()
                    If status = GdPictureStatus.OK Then
                        output = output + "Title = " + title.ToString()
                    Else
                        output = output + "Title = Error (" + status.ToString() + ")"
                    End If
                
                    state = oGdPicturePDF.GetOCGViewState(OcgId)
                    status = oGdPicturePDF.GetStat()
                    If status = GdPictureStatus.OK Then
                        output = output + " ; View = " + state.ToString()
                    Else
                        output = output + " ; View = Error (" + status.ToString() + ")"
                    End If
                
                    state = oGdPicturePDF.GetOCGExportState(OcgId)
                    status = oGdPicturePDF.GetStat()
                    If status = GdPictureStatus.OK Then
                        output = output + " ; Export = " + state.ToString()
                    Else
                        output = output + " ; Export = Error (" + status.ToString() + ")"
                    End If
                
                    state = oGdPicturePDF.GetOCGPrintState(OcgId)
                    status = oGdPicturePDF.GetStat()
                    If status = GdPictureStatus.OK Then
                        output = output + " ; Print = " + state.ToString()
                    Else
                        output = output + " ; Print = Error (" + status.ToString() + ")"
                    End If
                
                    onOff = oGdPicturePDF.GetOCGLockedState(OcgId)
                    status = oGdPicturePDF.GetStat()
                    If status = GdPictureStatus.OK Then
                        output = output + " ; Locked = " + onOff.ToString()
                    Else
                        output = output + " ; Locked = Error (" + status.ToString() + ")"
                    End If
                Else
                    output = output + "The GetOCG() method has failed with the status: " + status.ToString()
                End If
            Next
            MessageBox.Show(output, "Example: GetOCGCount")
        Else
            MessageBox.Show("The GetOCGCount() method has failed with the status: " + status.ToString(), "Example: GetOCGCount")
        End If
    Else
        MessageBox.Show("The file can't be loaded.", "Example: GetOCGCount")
    End If
    oGdPicturePDF.Dispose()
    GdPicturePDF oGdPicturePDF = new GdPicturePDF();
    GdPictureStatus status = oGdPicturePDF.LoadFromFile("test.pdf", false);
    if (status == GdPictureStatus.OK)
    {
        string output = "";
        int ocgCount = oGdPicturePDF.GetOCGCount();
        status = oGdPicturePDF.GetStat();
        if (status == GdPictureStatus.OK)
        {
            output = "The number of OCG layers: " + ocgCount.ToString();
            int OcgId = 0;
            string title = "";
            PdfOcgState state = PdfOcgState.Undefined;
            bool onOff = false;
            for (int i = 0; i < ocgCount; i++)
            {
                output = output + "\nNr." + (i + 1).ToString() + ": ";
                OcgId = oGdPicturePDF.GetOCG(i);
                status = oGdPicturePDF.GetStat();
                if (status == GdPictureStatus.OK)
                {
                    title = oGdPicturePDF.GetOCGTitle(OcgId);
                    status = oGdPicturePDF.GetStat();
                    if (status == GdPictureStatus.OK)
                        output = output + "Title = " + title.ToString();
                    else
                        output = output + "Title = Error (" + status.ToString() + ")";
                
                    state = oGdPicturePDF.GetOCGViewState(OcgId);
                    status = oGdPicturePDF.GetStat();
                    if (status == GdPictureStatus.OK)
                        output = output + " ; View = " + state.ToString();
                    else
                        output = output + " ; View = Error (" + status.ToString() + ")";
                
                    state = oGdPicturePDF.GetOCGExportState(OcgId);
                    status = oGdPicturePDF.GetStat();
                    if (status == GdPictureStatus.OK)
                        output = output + " ; Export = " + state.ToString();
                    else
                        output = output + " ; Export = Error (" + status.ToString() + ")";
                
                    state = oGdPicturePDF.GetOCGPrintState(OcgId);
                    status = oGdPicturePDF.GetStat();
                    if (status == GdPictureStatus.OK)
                        output = output + " ; Print = " + state.ToString();
                    else
                        output = output + " ; Print = Error (" + status.ToString() + ")";
                
                    onOff = oGdPicturePDF.GetOCGLockedState(OcgId);
                    status = oGdPicturePDF.GetStat();
                    if (status == GdPictureStatus.OK)
                        output = output + " ; Locked = " + onOff.ToString();
                    else
                        output = output + " ; Locked = Error (" + status.ToString() + ")";
                }
                else
                    output = output + "The GetOCG() method has failed with the status: " + status.ToString();
            }
            MessageBox.Show(output, "Example: GetOCGCount");
        }
        else
        {
            MessageBox.Show("The GetOCGCount() method has failed with the status: " + status.ToString(), "Example: GetOCGCount");
        }
    }
    else
    {
        MessageBox.Show("The file can't be loaded.", "Example: GetOCGCount");
    }
    oGdPicturePDF.Dispose();
    See Also