GetBlockWritingDirection Method (GdPictureOCR)
                                 
                                
                                    
                                        In This Topic
                                    
                                
                                Returns the writing direction of the specified block, that is a part of a specified OCR result.
            
            
            Syntax
            
        
            Parameters
- OCRResultID
- The unique result identifier of the executed OCR process obtained by the RunOCR method.
- BlockIdx
- The 0-based index of the block within the specified OCR result. It must be a value between 0 and GetBlockCount(OCRResultID) - 1.
Return Value
The writing direction of the specified block. A member of the OCRWritingDirection enumeration. 
Please always use the GetStat method to determine if this method has been successful.
 
            
            
            
            
            
            Example
How to find out the number of recognized blocks within the OCR result and some of the block's properties.
            
             
    
	
		Dim caption As String = "Example: GetBlockWritingDirection"
Dim gdpictureOCR As GdPictureOCR = New GdPictureOCR
Dim gdpicturePDF As GdPicturePDF = New GdPicturePDF
'Load the PDF document.
If gdpicturePDF.LoadFromFile("input.pdf", False) = GdPictureStatus.OK Then
    'Set the new origin for better coordinates handling.
    gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
    gdpicturePDF.SetLineColor(Color.Purple)
    gdpicturePDF.SetLineWidth(2)
    'Select the first page.
    gdpicturePDF.SelectPage(1)
    'Render this page to a 200 DPI image.
    Dim image As Integer = gdpicturePDF.RenderPageToGdPictureImage(200, True)
    If gdpicturePDF.GetStat = GdPictureStatus.OK AndAlso
       gdpictureOCR.SetImage(image) = GdPictureStatus.OK Then
        'Setting up the image is mandatory.
        Dim message As String = Nothing
        'Set up the OCR parameters.
        gdpictureOCR.ResourcesFolder = "C:\Path\To\GdPicture.NET 14\Redist\OCR"
        gdpictureOCR.AddLanguage(OCRLanguage.English)
        'Set up the OCR context and the character list.
        gdpictureOCR.Context = OCRContext.OCRContextDocument
        gdpictureOCR.CharacterSet = ""
        'Run the OCR process.
        Dim resID As String = gdpictureOCR.RunOCR()
        If gdpictureOCR.GetStat = GdPictureStatus.OK Then
            Dim blockCount As Integer = gdpictureOCR.GetBlockCount(resID)
            If gdpictureOCR.GetStat() = GdPictureStatus.OK Then
                message = message + "The number of recognized blocks: " + blockCount.ToString() + vbCrLf
                For i As Integer = 0 To blockCount - 1
                    message = message + "The block nr." + i.ToString() + ":" + vbCrLf + "Type: " + gdpictureOCR.GetBlockType(resID, i).ToString()
                    message = message + "   Writing direction: " + gdpictureOCR.GetBlockWritingDirection(resID, i)
                    message = message + vbCrLf + "   Paragraphs: " + gdpictureOCR.GetBlockParagraphCount(resID, i).ToString()
                    Dim left As Integer = gdpictureOCR.GetBlockLeft(resID, i)
                    Dim top As Integer = gdpictureOCR.GetBlockTop(resID, i)
                    If gdpicturePDF.DrawRectangle(left, top, gdpictureOCR.GetBlockRight(resID, i) - left, gdpictureOCR.GetBlockBottom(resID, i) - top, False, True) = GdPictureStatus.OK Then
                        message = message + "   Drawn: yes" + vbCrLf
                    Else
                        message = message + "   Drawn: no" + vbCrLf
                    End If
                Next
                MessageBox.Show(message, caption)
                'Continue with analyzing the result ...
                'Save the page with drawn recognized blocks to the new PDF document.
                If gdpicturePDF.SaveToFile("output.pdf") = GdPictureStatus.OK Then
                    MessageBox.Show("Done!", caption)
                Else
                    MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption)
                End If
            Else
                MessageBox.Show("The GetBlockCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString())
            End If
        Else
            MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption)
        End If
        'Release the image.
        GdPictureDocumentUtilities.DisposeImage(image)
    Else
        MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption)
    End If
    'Close the document.
    gdpicturePDF.CloseDocument()
Else
    MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption)
End If
'Release resources.
gdpictureOCR.ReleaseOCRResults()
gdpictureOCR.Dispose()
gdpicturePDF.Dispose()
	 
	
		string caption = "Example: GetBlockWritingDirection";
GdPictureOCR gdpictureOCR = new GdPictureOCR();
GdPicturePDF gdpicturePDF = new GdPicturePDF();
//Load the PDF document.
if (gdpicturePDF.LoadFromFile("input.pdf", false) == GdPictureStatus.OK)
{
    //Set the new origin for better coordinates handling.
    gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
    gdpicturePDF.SetLineColor(Color.Purple);
    gdpicturePDF.SetLineWidth(2);
    //Select the first page.
    gdpicturePDF.SelectPage(1);
    //Render this page to a 200 DPI image.
    int image = gdpicturePDF.RenderPageToGdPictureImage(200, true);
    if ((gdpicturePDF.GetStat() == GdPictureStatus.OK) &&
        (gdpictureOCR.SetImage(image) == GdPictureStatus.OK)) //Setting up the image is mandatory.
    {
        string message = "";
        //Set up the OCR parameters.
        gdpictureOCR.ResourcesFolder = "C:\\Path\\To\\GdPicture.NET 14\\Redist\\OCR";
        gdpictureOCR.AddLanguage(OCRLanguage.English);
        //Set up the OCR context and the character list.
        gdpictureOCR.Context = OCRContext.OCRContextDocument;
        gdpictureOCR.CharacterSet = "";
        //Run the OCR process.
        string resID = gdpictureOCR.RunOCR();
        if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
        {
            int blockCount = gdpictureOCR.GetBlockCount(resID);
            if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
            {
                message = message + "The number of recognized blocks: " + blockCount.ToString() + "\n";
                for (int i = 0; i < blockCount; i++)
                {
                    message = message + "The block nr." + i.ToString() + ":\nType: " + gdpictureOCR.GetBlockType(resID, i).ToString();
                    message = message + "   Writing direction: " + gdpictureOCR.GetBlockWritingDirection(resID, i);
                    message = message + "\n   Paragraphs: " + gdpictureOCR.GetBlockParagraphCount(resID, i).ToString();
                    int left = gdpictureOCR.GetBlockLeft(resID, i);
                    int top = gdpictureOCR.GetBlockTop(resID, i);
                    if (gdpicturePDF.DrawRectangle(left, top, gdpictureOCR.GetBlockRight(resID, i) - left, gdpictureOCR.GetBlockBottom(resID, i) - top, false, true) == GdPictureStatus.OK)
                        message = message + "   Drawn: yes\n";
                    else
                        message = message + "   Drawn: no\n";
                }
                MessageBox.Show(message, caption);
                //Continue with analyzing the result ...
                //Save the page with drawn recognized blocks to the new PDF document.
                if (gdpicturePDF.SaveToFile("output.pdf") == GdPictureStatus.OK)
                    MessageBox.Show("Done!", caption);
                else
                    MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption);
            }
            else
                MessageBox.Show("The GetBlockCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString());
        }
        else
            MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption);
        //Release the image.
        GdPictureDocumentUtilities.DisposeImage(image);
    }
    else
        MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption);
    //Close the document.
    gdpicturePDF.CloseDocument();
}
else
    MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption);
//Release resources.
gdpictureOCR.ReleaseOCRResults();
gdpictureOCR.Dispose();
gdpicturePDF.Dispose();
	 
	
 
Example
How to find out the number of recognized blocks within the OCR result and some of the block's properties.
            
            Dim caption As String = "Example: GetBlockWritingDirection"
            Dim gdpictureOCR As GdPictureOCR = New GdPictureOCR
            Dim gdpicturePDF As GdPicturePDF = New GdPicturePDF
            'Load the PDF document.
            If gdpicturePDF.LoadFromFile("input.pdf", False) = GdPictureStatus.OK Then
                'Set the new origin for better coordinates handling.
                gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
                gdpicturePDF.SetLineColor(Color.Purple)
                gdpicturePDF.SetLineWidth(2)
                'Select the first page.
                gdpicturePDF.SelectPage(1)
                'Render this page to a 200 DPI image.
                Dim image As Integer = gdpicturePDF.RenderPageToGdPictureImage(200, True)
                If gdpicturePDF.GetStat = GdPictureStatus.OK AndAlso
                   gdpictureOCR.SetImage(image) = GdPictureStatus.OK Then
                    'Setting up the image is mandatory.
                    Dim message As String = Nothing
                    'Set up the OCR parameters.
                    gdpictureOCR.ResourcesFolder = "C:\Path\To\GdPicture.NET 14\Redist\OCR"
                    gdpictureOCR.AddLanguage(OCRLanguage.English)
                    'Set up the OCR context and the character list.
                    gdpictureOCR.Context = OCRContext.OCRContextDocument
                    gdpictureOCR.CharacterSet = ""
                    'Run the OCR process.
                    Dim resID As String = gdpictureOCR.RunOCR()
                    If gdpictureOCR.GetStat = GdPictureStatus.OK Then
                        Dim blockCount As Integer = gdpictureOCR.GetBlockCount(resID)
                        If gdpictureOCR.GetStat() = GdPictureStatus.OK Then
                            message = message + "The number of recognized blocks: " + blockCount.ToString() + vbCrLf
                            For i As Integer = 0 To blockCount - 1
                                message = message + "The block nr." + i.ToString() + ":" + vbCrLf + "Type: " + gdpictureOCR.GetBlockType(resID, i).ToString()
                                message = message + "   Writing direction: " + gdpictureOCR.GetBlockWritingDirection(resID, i)
                                message = message + vbCrLf + "   Paragraphs: " + gdpictureOCR.GetBlockParagraphCount(resID, i).ToString()
                                Dim left As Integer = gdpictureOCR.GetBlockLeft(resID, i)
                                Dim top As Integer = gdpictureOCR.GetBlockTop(resID, i)
                                If gdpicturePDF.DrawRectangle(left, top, gdpictureOCR.GetBlockRight(resID, i) - left, gdpictureOCR.GetBlockBottom(resID, i) - top, False, True) = GdPictureStatus.OK Then
                                    message = message + "   Drawn: yes" + vbCrLf
                                Else
                                    message = message + "   Drawn: no" + vbCrLf
                                End If
                            Next
                            MessageBox.Show(message, caption)
                            'Continue with analyzing the result ...
                            'Save the page with drawn recognized blocks to the new PDF document.
                            If gdpicturePDF.SaveToFile("output.pdf") = GdPictureStatus.OK Then
                                MessageBox.Show("Done!", caption)
                            Else
                                MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption)
                            End If
                        Else
                            MessageBox.Show("The GetBlockCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString())
                        End If
                    Else
                        MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption)
                    End If
                    'Release the image.
                    GdPictureDocumentUtilities.DisposeImage(image)
                Else
                    MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption)
                End If
                'Close the document.
                gdpicturePDF.CloseDocument()
            Else
                MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption)
            End If
            'Release resources.
            gdpictureOCR.ReleaseOCRResults()
            gdpictureOCR.Dispose()
            gdpicturePDF.Dispose()
            string caption = "Example: GetBlockWritingDirection";
            GdPictureOCR gdpictureOCR = new GdPictureOCR();
            GdPicturePDF gdpicturePDF = new GdPicturePDF();
            //Load the PDF document.
            if (gdpicturePDF.LoadFromFile("input.pdf", false) == GdPictureStatus.OK)
            {
                //Set the new origin for better coordinates handling.
                gdpicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft);
                gdpicturePDF.SetLineColor(Color.Purple);
                gdpicturePDF.SetLineWidth(2);
                //Select the first page.
                gdpicturePDF.SelectPage(1);
                //Render this page to a 200 DPI image.
                int image = gdpicturePDF.RenderPageToGdPictureImage(200, true);
                if ((gdpicturePDF.GetStat() == GdPictureStatus.OK) &&
                    (gdpictureOCR.SetImage(image) == GdPictureStatus.OK)) //Setting up the image is mandatory.
                {
                    string message = "";
                    //Set up the OCR parameters.
                    gdpictureOCR.ResourcesFolder = "C:\\Path\\To\\GdPicture.NET 14\\Redist\\OCR";
                    gdpictureOCR.AddLanguage(OCRLanguage.English);
                    //Set up the OCR context and the character list.
                    gdpictureOCR.Context = OCRContext.OCRContextDocument;
                    gdpictureOCR.CharacterSet = "";
                    //Run the OCR process.
                    string resID = gdpictureOCR.RunOCR();
                    if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
                    {
                        int blockCount = gdpictureOCR.GetBlockCount(resID);
                        if (gdpictureOCR.GetStat() == GdPictureStatus.OK)
                        {
                            message = message + "The number of recognized blocks: " + blockCount.ToString() + "\n";
                            for (int i = 0; i < blockCount; i++)
                            {
                                message = message + "The block nr." + i.ToString() + ":\nType: " + gdpictureOCR.GetBlockType(resID, i).ToString();
                                message = message + "   Writing direction: " + gdpictureOCR.GetBlockWritingDirection(resID, i);
                                message = message + "\n   Paragraphs: " + gdpictureOCR.GetBlockParagraphCount(resID, i).ToString();
                                int left = gdpictureOCR.GetBlockLeft(resID, i);
                                int top = gdpictureOCR.GetBlockTop(resID, i);
                                if (gdpicturePDF.DrawRectangle(left, top, gdpictureOCR.GetBlockRight(resID, i) - left, gdpictureOCR.GetBlockBottom(resID, i) - top, false, true) == GdPictureStatus.OK)
                                    message = message + "   Drawn: yes\n";
                                else
                                    message = message + "   Drawn: no\n";
                            }
                            MessageBox.Show(message, caption);
                            //Continue with analyzing the result ...
                            //Save the page with drawn recognized blocks to the new PDF document.
                            if (gdpicturePDF.SaveToFile("output.pdf") == GdPictureStatus.OK)
                                MessageBox.Show("Done!", caption);
                            else
                                MessageBox.Show("The file can't be saved. Status: " + gdpicturePDF.GetStat().ToString(), caption);
                        }
                        else
                            MessageBox.Show("The GetBlockCount() method has failed with the status: " + gdpictureOCR.GetStat().ToString());
                    }
                    else
                        MessageBox.Show("The error occurred when running the OCR. Status: " + gdpictureOCR.GetStat().ToString(), caption);
                    //Release the image.
                    GdPictureDocumentUtilities.DisposeImage(image);
                }
                else
                    MessageBox.Show("The error occurred when creating or setting up the image. Status: " + gdpicturePDF.GetStat().ToString() + "/" + gdpictureOCR.GetStat().ToString(), caption);
                //Close the document.
                gdpicturePDF.CloseDocument();
            }
            else
                MessageBox.Show("The file can't be loaded. Status: " + gdpicturePDF.GetStat().ToString(), caption);
            //Release resources.
            gdpictureOCR.ReleaseOCRResults();
            gdpictureOCR.Dispose();
            gdpicturePDF.Dispose();
            
            
            See Also