Jak extrahovat text z naskenovaného PDF v C#

Tento tutoriál krok za krokem ukazuje, jak extrahovat text z naskenovaného PDF v C#. Když naskenujete dokumenty do PDF, tyto stránky se přidají jako naskenované obrázky do souboru PDF. Chcete-li tedy extrahovat text z naskenovaného souboru PDF, budete ve skutečnosti muset extrahovat text z obrázků v PDF v C# pomocí optického rozpoznávání znaků (OCR).

Kroky k extrahování textu z naskenovaného PDF v C#

  1. Získejte Aspose.OCR for .NET od správce balíčků NuGet.org
  2. Přidat odkaz na Aspose.OCR namespace
  3. Použijte licenční kód pomocí metody SetLicense
  4. Spusťte instanci třídy AsposeOcr
  5. Zadejte nastavení rozpoznávání pomocí DocumentRecognitionSettings class
  6. Extrahujte všechny stránky PDF pomocí metody RecognizePDF
  7. Získejte text z každé stránky PDF pomocí vlastnosti RecognitionText

Pomocí výše uvedených kroků můžete rychle a snadno číst text z naskenovaného PDF v C#. Již dříve jsme vám ukázali, jak Extrahujte text z obrázku v C#. Tento příklad vám však pomůže získat text z PDF v C#.

Kód pro extrahování textu z naskenovaného PDF v C#

using System;
using System.Collections.Generic;
//Use following namespace to extract text from scanned PDF
using Aspose.OCR;
namespace ExtractTextFromScannedPDFFile
{
class Program
{
static void Main(string[] args)
{
//Set license before extracting text from scanned PDF file
Aspose.OCR.License AsposeOCRLicense = new Aspose.OCR.License();
AsposeOCRLicense.SetLicense(@"c:\asposelicense\license.lic");
//create AsposeOcr object
AsposeOcr ScannedPDFFile = new AsposeOcr();
//set recognition settings
DocumentRecognitionSettings RecognitionSettings = new DocumentRecognitionSettings();
RecognitionSettings.StartPage = 1;
RecognitionSettings.PagesNumber = 3;
//when set true, improves accuracy but reduces speed
RecognitionSettings.DetectAreas = false;
//extract text from specified pages
List<RecognitionResult> ExtractedResults = ScannedPDFFile.RecognizePdf("InputScannedPDFFile.pdf", RecognitionSettings);
//fetch extracted text of each page
int PageCounter = 1;
foreach(RecognitionResult SinglePage in ExtractedResults)
{
Console.WriteLine("Page: {0}, Extracted Text:{1}", PageCounter, SinglePage.RecognitionText);
PageCounter++;
}
}
}
}

Výše uvedený příklad C# získat text z PDF je jednoduchý a snadno pochopitelný. Jednoduše čteme naskenovaný soubor PDF a poté extrahujeme text z každé stránky. Zde je však důležité porozumět jednomu důležitému bodu, a to vlastnost DetectArea. Pokud jej nastavíte na hodnotu true, poskytne vám to větší přesnost, ale sníží rychlost zpracování PDF. Nastavením na hodnotu false se však rychlost zlepší a přesnost se může trochu snížit. Musíte si tedy vybrat mezi dvěma možnostmi na základě vaší situace.

 Čeština