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#
- Získejte Aspose.OCR for .NET od správce balíčků NuGet.org
- Přidat odkaz na Aspose.OCR namespace
- Použijte licenční kód pomocí metody SetLicense
- Spusťte instanci třídy AsposeOcr
- Zadejte nastavení rozpoznávání pomocí DocumentRecognitionSettings class
- Extrahujte všechny stránky PDF pomocí metody RecognizePDF
- 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.