Build intelligent document processing applications with GdPicture .NET OCR SDK. Extract text from images and PDFs with more than 99 percent accuracy across 100+ languages using AI and ML technology. Built-in multithreading, automatic preprocessing, and enterprise-grade reliability — without the complexity and support gaps of open source solutions.
Extract text with more than 99 percent accuracy using AI-powered recognition across 100+ languages. Built-in preprocessing automatically corrects image quality issues — deskew, denoise, and enhance characters. Flexible OCR modes, character filtering, and zonal extraction enable precise control. Create searchable PDFs and process 100+ document formats with multithreaded performance.
Full Unicode support for accurate recognition and output of multilingual text. Process and generate PDFs with Unicode characters in any size. Built-in support for 30+ languages, including English, French, Italian, German, Spanish, Portuguese, Vietnamese, Chinese, Russian, Polish, and Dutch. Extend to 100+ additional languages with Tesseract packs.
Advanced character recognition with confidence scoring and precise location data. Configure character allowlists (digits only, alpha only) or denylists to improve accuracy. Retrieve character bounding boxes for exact positioning. Define OCR context — document, page, paragraph, block, line, or word level — to optimize recognition for your specific use case.
Extract rich text metadata — including font information (style, family), formatting details (bold, italic), and layout properties (justification, alignment, bounding boxes). Intelligent segmentation detects text blocks, paragraphs, lines, words, and individual characters. Output structured text with accurate positioning for downstream document analysis and data extraction workflows.
Automatic preprocessing improves OCR accuracy without manual intervention. Built-in capabilities include deskew (orientation correction), paragraph detection, noise removal, character enhancement, and line/punch hole removal. Fast area processing accelerates operations on selected regions. Intelligent corrections deliver high-quality results from poor-quality scans.
Generate searchable PDFs with embedded text layers and PDF/A-4f archival compliance. Our multithreaded engine converts 100+ formats — images, Office documents, CAD files — to searchable PDFs. Recognize and convert documents to DOCX, HTML, PDF, and text formats. Flexible output options ensure broad compatibility and document reuse across your workflows.
Seamlessly integrates with the .NET SDK’s 100+ document processing features. Multithreaded support for high-volume batch processing with configurable CPU limits. 32-bit and 64-bit compatibility across .NET Framework, .NET Core, and .NET 6+. Works with external Tesseract engines for extended language support. Enterprise-grade architecture scales from single documents to high-volume automated workflows.
Convert scanned documents, images, and existing PDFs into searchable PDF/A files with embedded text layers. Our AI-powered OCR engine extracts text and preserves it invisibly behind the original image, enabling full-text search while maintaining visual fidelity. Create PDF/A-4f-compliant archives for long-term document preservation with perfect searchability.
Built-in multithreading processes multiple pages simultaneously for faster OCR operations. Configurable CPU limits optimize performance across diverse workloads — from single documents to high-volume batch processing. Scale seamlessly from desktop applications to enterprise document automation workflows with intelligent thread allocation.
Process documents in 100+ languages with 30+ built-in language packs and support for 120+ additional Tesseract languages. Full Unicode support ensures accurate recognition of multilingual content, including English, Chinese, Arabic, Russian, Japanese, and European languages. Recognize multiple languages in a single document for international workflows.
Demo
Upload scanned images, PDFs, or photos to evaluate our OCR engine’s performance.
Recognize handwritten text with AI-powered character recognition. Currently supports handwritten numerics in boxes, with expansion planned for additional contexts. Ideal for processing handwritten forms, applications, and documents where printed text isn’t available. Machine learning algorithms continuously improve accuracy across diverse handwriting styles.
Get started
Download and install the GdPicture.NET package to access compiled demo applications and multi-language sample projects with full source code.
\Samples\Bin\.\Samples\WinForm\.using GdPictureImaging gdpictureImaging = new GdPictureImaging();// Select the image to process.int imageID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.png");// Scan the barcodes.gdpictureImaging.Barcode1DReaderDoScan(imageID);// Determine the number of scanned barcodes.int barcodeCount = gdpictureImaging.Barcode1DReaderGetBarcodeCount();string content = "";if (barcodeCount > 0){ content = "Number of barcodes scanned: " + barcodeCount.ToString(); // Save the value of each barcode. for (int i = 1; i <= barcodeCount; i++) { content += $"\nBarcode Number: {i} Value: {gdpictureImaging.Barcode1DReaderGetBarcodeValue(i)}"; }}// Write the values to the console.Console.WriteLine(content);// Release unnecessary resources.gdpictureImaging.Barcode1DReaderClear();gdpictureImaging.ReleaseGdPictureImage(imageID);Using gdpictureImaging As GdPictureImaging = New GdPictureImaging() ' Select the image to process. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.png") ' Scan the barcodes. gdpictureImaging.Barcode1DReaderDoScan(imageID) ' Determine the number of scanned barcodes. Dim barcodeCount As Integer = gdpictureImaging.Barcode1DReaderGetBarcodeCount() Dim content = "" If barcodeCount > 0 Then content = "Number of barcodes scanned: " & barcodeCount.ToString() ' Save the value of each barcode. For i = 1 To barcodeCount content = content & vbLf & "Barcode Number: " & i.ToString() & " Value: " & gdpictureImaging.Barcode1DReaderGetBarcodeValue(i).ToString() Next End If ' Write the values to the console. Console.WriteLine(content); ' Release unnecessary resources. gdpictureImaging.Barcode1DReaderClear() gdpictureImaging.ReleaseGdPictureImage(imageID)End Usingusing GdPicturePDF gdpicturePDF = new GdPicturePDF();using GdPictureImaging gdpictureImaging = new GdPictureImaging();using GdPictureOCR gdpictureOCR = new GdPictureOCR();// Select the image to process.int imageID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.png");// Set the OCR parameters.gdpictureOCR.SetImage(imageID);gdpictureOCR.ResourceFolder = @"C:\GdPicture.NET 14\Redist\OCR";gdpictureOCR.AddLanguage(OCRLanguage.English);// Run the OCR process.string resID = gdpictureOCR.RunOCR();// Get the result of the OCR process as text.string content = gdpictureOCR.GetOCRResultText(resID);// Save the result in a PDF document.gdpicturePDF.CreateFromText(PdfConformance.PDF, 595, 842, 10, 10, 10, 10,TextAlignment.TextAlignmentNear, content, 12, "Arial", false, false, true, false);gdpicturePDF.SaveToFile(@"C:\temp\output.pdf");gdpictureImaging.ReleaseGdPictureImage(imageID);Using gdpicturePDF As GdPicturePDF = New GdPicturePDF()Using gdpictureImaging As GdPictureImaging = New GdPictureImaging()Using gdpictureOCR As GdPictureOCR = New GdPictureOCR() ' Select the image to process. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.png") ' Set the OCR parameters. gdpictureOCR.SetImage(imageID) gdpictureOCR.ResourceFolder = "C:\GdPicture.NET 14\Redist\OCR" gdpictureOCR.AddLanguage(OCRLanguage.English) ' Run the OCR process. Dim resID As String = gdpictureOCR.RunOCR() ' Get the result of the OCR process as text. Dim content As String = gdpictureOCR.GetOCRResultText(resID) ' Save the result in a PDF document. gdpicturePDF.CreateFromText(PdfConformance.PDF, 595, 842, 10, 10, 10, 10, TextAlignment.TextAlignmentNear, content, 12, "Arial", False, False, True, False) gdpicturePDF.SaveToFile("C:\temp\output.pdf") gdpictureImaging.ReleaseGdPictureImage(imageID)End UsingEnd UsingEnd Usingusing GdPictureImaging gdpictureImaging = new GdPictureImaging();using GdPicturePDF gdpicturePDF = new GdPicturePDF();// Store the handle of the active windows in a variable.IntPtr WINDOW_HANDLE = IntPtr.Zero;// Select the scanner.gdpictureImaging.TwainSelectSource(WINDOW_HANDLE);gdpictureImaging.TwainOpenDefaultSource(WINDOW_HANDLE);// (Optional) Hide the scanning user interface.gdpictureImaging.TwainSetHideUI(true);// Create the destination PDF document.gdpicturePDF.NewPDF(PdfConformance.PDF);// Get the image from the scanner.int imageID = gdpictureImaging.TwainAcquireToGdPictureImage(WINDOW_HANDLE);// Add the scanned image to a new page in the destination document.gdpicturePDF.AddImageFromGdPictureImage(imageID, false, true);// Run the OCR process.gdpicturePDF.OcrPage("eng", @"C:\GdPicture.NET 14\Redist\OCR", "", 300);// Save the result in a PDF document.gdpicturePDF.SaveToFile(@"C:\temp\output.pdf");// Release unnecessary resources.gdpictureImaging.ReleaseGdPictureImage(imageID);gdpictureImaging.TwainCloseSource();Using gdpictureImaging As GdPictureImaging = New GdPictureImaging()Using gdpicturePDF As GdPicturePDF = New GdPicturePDF() ' Store the handle of the active windows in a variable. Dim WINDOW_HANDLE = IntPtr.Zero ' Select the scanner. gdpictureImaging.TwainSelectSource(WINDOW_HANDLE) gdpictureImaging.TwainOpenDefaultSource(WINDOW_HANDLE) ' (Optional) Hide the scanning user interface. gdpictureImaging.TwainSetHideUI(True) ' Create the destination PDF document. gdpicturePDF.NewPDF(PdfConformance.PDF) ' Get the image from the scanner. Dim imageID As Integer = gdpictureImaging.TwainAcquireToGdPictureImage(WINDOW_HANDLE) ' Add the scanned image to a new page in the destination document. gdpicturePDF.AddImageFromGdPictureImage(imageID, False, True) ' Run the OCR process. gdpicturePDF.OcrPage("eng", "C:\GdPicture.NET 14\Redist\OCR", "", 300) ' Save the result in a PDF document. gdpicturePDF.SaveToFile("C:\temp\output.pdf") ' Release unnecessary resources. gdpictureImaging.ReleaseGdPictureImage(imageID) gdpictureImaging.TwainCloseSource()End UsingEnd Usingusing GdPicturePDF gdpicturePDF = new GdPicturePDF();// Load the source document.gdpicturePDF.LoadFromFile(@"C:\temp\source.pdf");// Determine the number of pages.int pageCount = gdpicturePDF.GetPageCount();// Loop through the pages of the source document.for (int i = 1; i <= pageCount; i++){ // Select a page and run the OCR process on it. gdpicturePDF.SelectPage(i); gdpicturePDF.OcrPage("eng", @"C:\GdPicture.NET 14\Redist\OCR", "", 300);}// Save the result in a new PDF document.gdpicturePDF.SaveToFile(@"C:\temp\output.pdf");gdpicturePDF.CloseDocument();Using gdpicturePDF As GdPicturePDF = New GdPicturePDF() ' Load the source document. gdpicturePDF.LoadFromFile("C:\temp\source.pdf") ' Determine the number of pages. Dim pageCount As Integer = gdpicturePDF.GetPageCount() ' Loop through the pages of the source document. For i = 1 To pageCount ' Select a page and run the OCR process on it. gdpicturePDF.SelectPage(i) gdpicturePDF.OcrPage("eng", "C:\GdPicture.NET 14\Redist\OCR", "", 300) Next ' Save the result in a new PDF document. gdpicturePDF.SaveToFile("C:\temp\output.pdf") gdpicturePDF.CloseDocument()End Usingusing GdPicturePDF gdpicturePDF = new GdPicturePDF();using GdPictureImaging gdpictureImaging = new GdPictureImaging();using GdPictureOCR gdpictureOCR = new GdPictureOCR();// Select the image to process.int imageID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.png");// Set the OCR parameters.gdpictureOCR.SetImage(imageID);gdpictureOCR.ResourceFolder = @"C:\GdPicture.NET 14\Redist\OCR";gdpictureOCR.AddLanguage(OCRLanguage.English);// Run the OCR process.string resID = gdpictureOCR.RunOCR();// Get the result of the OCR process as text.string content = gdpictureOCR.GetOCRResultText(resID);// Save the result in a PDF document.gdpicturePDF.CreateFromText(PdfConformance.PDF_A_4f, 595, 842, 10, 10, 10, 10, TextAlignment.TextAlignmentNear, content, 12, "Arial", false, false, true, false);gdpicturePDF.SaveToFile(@"C:\temp\output.pdf");gdpictureImaging.ReleaseGdPictureImage(imageID);Using gdpicturePDF As GdPicturePDF = New GdPicturePDF()Using gdpictureImaging As GdPictureImaging = New GdPictureImaging()Using gdpictureOCR As GdPictureOCR = New GdPictureOCR() ' Select the image to process. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.png") ' Set the OCR parameters. gdpictureOCR.SetImage(imageID) gdpictureOCR.ResourceFolder = "C:\GdPicture.NET 14\Redist\OCR" gdpictureOCR.AddLanguage(OCRLanguage.English) ' Run the OCR process. Dim resID As String = gdpictureOCR.RunOCR() ' Get the result of the OCR process as text. Dim content As String = gdpictureOCR.GetOCRResultText(resID) ' Save the result in a PDF document. gdpicturePDF.CreateFromText(PdfConformance.PDF_A_4f, 595, 842, 10, 10, 10, 10, TextAlignment.TextAlignmentNear, content, 12, "Arial", False, False, True, False) gdpicturePDF.SaveToFile("C:\temp\output.pdf") gdpictureImaging.ReleaseGdPictureImage(imageID)End UsingEnd UsingEnd UsingThe GdPicture.NET OCR SDK is a comprehensive document imaging toolkit that provides powerful optical character recognition (OCR) capabilities for .NET applications. It enables developers to extract text from scanned documents, images, and PDFs with high accuracy using AI and machine learning technology.
The SDK supports recognition of more than 130 languages, including complex scripts and right-to-left languages like Arabic and Hebrew. It comes with 30+ built-in language packs and supports 100+ additional Tesseract language packs for extended coverage.
The SDK employs advanced preprocessing and segmentation techniques to enhance OCR accuracy. Built-in image correction features like deskewing, denoising, and character enhancement automatically improve source quality before recognition. The AI-powered engine delivers more than 99 percent accuracy across diverse document types.
Yes. The SDK enables the creation of searchable PDFs by embedding recognized text within the PDF as an invisible layer. This makes the content fully searchable and selectable while preserving the original document appearance. It also supports PDF/A archival compliance for long-term document preservation.
Yes. The SDK includes full multithreading support for high-performance document processing. You can configure CPU limits to optimize performance across diverse workloads — from single documents to high-volume batch processing in enterprise environments.
60-day free trial