GdPicture.NET.14
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 gdpicturePDF As New GdPicturePDF()
Dim status As GdPictureStatus = gdpicturePDF.LoadFromFile("test.pdf", False)
If status = GdPictureStatus.OK Then
    Dim output As String = ""
    Dim ocgCount As Integer = gdpicturePDF.GetOCGCount()
    status = gdpicturePDF.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 = gdpicturePDF.GetOCG(i)
            status = gdpicturePDF.GetStat()
            If status = GdPictureStatus.OK Then
                title = gdpicturePDF.GetOCGTitle(OcgId)
                status = gdpicturePDF.GetStat()
                If status = GdPictureStatus.OK Then
                    output = output + "Title = " + title.ToString()
                Else
                    output = output + "Title = Error (" + status.ToString() + ")"
                End If
            
                state = gdpicturePDF.GetOCGViewState(OcgId)
                status = gdpicturePDF.GetStat()
                If status = GdPictureStatus.OK Then
                    output = output + " ; View = " + state.ToString()
                Else
                    output = output + " ; View = Error (" + status.ToString() + ")"
                End If
            
                state = gdpicturePDF.GetOCGExportState(OcgId)
                status = gdpicturePDF.GetStat()
                If status = GdPictureStatus.OK Then
                    output = output + " ; Export = " + state.ToString()
                Else
                    output = output + " ; Export = Error (" + status.ToString() + ")"
                End If
            
                state = gdpicturePDF.GetOCGPrintState(OcgId)
                status = gdpicturePDF.GetStat()
                If status = GdPictureStatus.OK Then
                    output = output + " ; Print = " + state.ToString()
                Else
                    output = output + " ; Print = Error (" + status.ToString() + ")"
                End If
            
                onOff = gdpicturePDF.GetOCGLockedState(OcgId)
                status = gdpicturePDF.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
gdpicturePDF.Dispose()
GdPicturePDF gdpicturePDF = new GdPicturePDF();
GdPictureStatus status = gdpicturePDF.LoadFromFile("test.pdf", false);
if (status == GdPictureStatus.OK)
{
    string output = "";
    int ocgCount = gdpicturePDF.GetOCGCount();
    status = gdpicturePDF.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 = gdpicturePDF.GetOCG(i);
            status = gdpicturePDF.GetStat();
            if (status == GdPictureStatus.OK)
            {
                title = gdpicturePDF.GetOCGTitle(OcgId);
                status = gdpicturePDF.GetStat();
                if (status == GdPictureStatus.OK)
                    output = output + "Title = " + title.ToString();
                else
                    output = output + "Title = Error (" + status.ToString() + ")";
            
                state = gdpicturePDF.GetOCGViewState(OcgId);
                status = gdpicturePDF.GetStat();
                if (status == GdPictureStatus.OK)
                    output = output + " ; View = " + state.ToString();
                else
                    output = output + " ; View = Error (" + status.ToString() + ")";
            
                state = gdpicturePDF.GetOCGExportState(OcgId);
                status = gdpicturePDF.GetStat();
                if (status == GdPictureStatus.OK)
                    output = output + " ; Export = " + state.ToString();
                else
                    output = output + " ; Export = Error (" + status.ToString() + ")";
            
                state = gdpicturePDF.GetOCGPrintState(OcgId);
                status = gdpicturePDF.GetStat();
                if (status == GdPictureStatus.OK)
                    output = output + " ; Print = " + state.ToString();
                else
                    output = output + " ; Print = Error (" + status.ToString() + ")";
            
                onOff = gdpicturePDF.GetOCGLockedState(OcgId);
                status = gdpicturePDF.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");
}
gdpicturePDF.Dispose();
See Also