Die OCR -Textentnahme funktioniert jetzt ordnungsgemäß mit PDFtronC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Die OCR -Textentnahme funktioniert jetzt ordnungsgemäß mit PDFtron

Post by Anonymous »

Produkt:
APRYSE OCR < /p>
Produktversion:
pdftron.net.x64 --version 11.3.0 < /p>
Ich habe eine PDF einer einzelnen Seite, die aus einem gescannten Dokument besteht. Ich versuche, den Inhalt aus dieser Seite im Text zu extrahieren. Die Extraktion fällt in einigen Ebenen aus. Es extrahiert mir die Daten nicht auf sequentielle Weise. Der Text ist überall verstreut und die Sequenz wird gestört. [HttpPost("read-pdf-pdftron")]
public async Task ReadPdfPdftron([FromBody] PdfFilePathRequest request)
{
try
{
if (string.IsNullOrWhiteSpace(request.PdfFilePath))
{
return new StandardResponse
{
Status = false,
Message = "PDF file path cannot be empty."
};
}
pdftron.PDFNet.AddResourceSearchPath(@"C:\Users\my path for OCRModuleWindows or IRSOCRModuleWindows or \Lib");

// Initialize with error checking
try
{
pdftron.PDFNet.Initialize("my license");
_logger.LogInformation("PDFTron initialized successfully");
}
catch (Exception ex)
{
_logger.LogError(ex, "PDFTron initialization failed");
return new StandardResponse
{
Status = false,
Message = $"PDFTron initialization error: {ex.Message}"
};
}
bool use_iris = OCRModule.IsIRISModuleAvailable();
if (!OCRModule.IsModuleAvailable())
{
return new StandardResponse
{
Status = false,
Message = "OCR module not available"
};
}

OCROptions ocrOptions = new OCROptions();
if (use_iris) ocrOptions.SetOCREngine("iris");
ocrOptions.AddLang("eng");
// Load the PDF document
using (PDFDoc pdfDoc = new PDFDoc(request.PdfFilePath))
{
pdfDoc.InitSecurityHandler();
// This step actually performs OCR on image-only PDFs:
pdftron.PDF.OCRModule.ProcessPDF(pdfDoc, ocrOptions);

// Create a StringBuilder to store text from all pages
StringBuilder allText = new StringBuilder();

// Extract text from all pages
int pageCount = pdfDoc.GetPageCount();
for (int i = 1; i
Bitte geben Sie einen Link zu einem minimalen Beispiel an, bei dem das Problem reproduzierbar ist:
Sie können das Beispiel für ein einzelnes PDF im Anhang finden. Wenn ich den Pfad dafür als Eingabe angab, habe ich die folgende Antwort < /p>

[*]
" Daten ":" --- Seite 1 --- \ r \ n Die für die Bewertungsheader erforderliche Haupttabelle \ nfirst Header \ nSecond Header \ nFirst Zeile zuerst Dritte \ ncolumn sample \ ndata \ nfourth header \ nfirst row viertes \ ncolumn sample \ ndata \ nSecond Zeile zuerst \ ncolumn sample \ ndata \ nsecond row \ nSecond Säule \ nsample data \ nSecond \ ncolumn Beispiel \ \ \ nSecond \ ncolumn Beispiel \ \ \ nSecond \ ncolumn Beispiel \ \ \ nSecond \ ncolumn Beispiel \ \ \ nSecond \ ncolumn Beispiel \ \ \ nSecond \ ncolumn Beispiel \ \ \ \ nSecond \ ncolumn Beispiel \ \ \ \ nSecond \ ncolumn Beispiel \ \ \ nSecond row Vierte \ ncolumn sample \ ndata \ nThird Zeile zuerst \ ncolumn sample \ ndata \ nThird Zeile zweite \ ncolumn sample \ ndata \ nThird Zeile dritters. Der 15005, als ein Nunknown -Drucker eine Galeere vom Typ nahm und ihn durchschlug, um ein Typ -Exemplar -Buch zu machen. It\nhas survived not only five centuries, but also the leap into electronic typesetting, remaining\nessentially\n\r\n\r\n"
}

[*]Beautifying the response below

--- Page 1 ---
The Main Table required Für den Bewertungsheader
erster Header
Zweiter Header
Erste Zeile erste
Spalte Beispiel
Daten
Erste Zeile zweite
Säule Beispiel
Daten
dritter Header. /> Spalte Beispiel
Daten
Zweite Zeile
SPALT
Beispieldaten
Zweite Zeile dritte
Spalte Beispiel
Daten
Zweite Zeile vierte
Spaltenmuster Zeile viertes
Spalten Beispiel
Beispieltext zur Differenzierung zwischen Tabellendaten und äußeren Daten
Gypsum war seit dem 15005 der Standard -Dummy -Text der Branche, als ein nicht bekanntem Drucker eine Galeere vom Typ entnommen und es durchschlug, um ein Typ mit dem Typ aus dem Typ zu erstellen. Es hat nicht nur fünf Jahrhunderte überlebt, sondern auch den Sprung in elektronische Typeneting, was
im Wesentlichen < /p>
< /li>
Hier können wir beobachten, dass wir in der Bindung in dem Bindung den ersten Header in der vierten Header mit dem. Coloumn erster "Erste Zeile erste
Spaltenmuster
Daten
Erste Zeile zweite
Spalte Beispiel
Daten" < /p>
< /li>
So viele grundlegende Extraktion sollte kein Problem für ein lizenziertes Produkt verursachen, an denen ich angenommen wird, dass in meinem Code oder My Extraction -Methode. /> Bietet die Bibliothek zusätzlich Methoden zum Erkennen der Tabellen und ihrer Inhalte spezifisch? und zwei weitere Textzeilen danach < /p>
< /li>
Jetzt sollte der Code in der Lage sein, alle Daten zu extrahieren, vier Zeilen im Beginn, Tabelleninhalt mit der gleichen Funktionalität [Tabelleninhalt] und weitere 2 Zeilen als solche < /p>
< /li>
< /ul> < /ul> < /ul> < /ul> < /ul> < /< />
Warum begegne ich dieses Verhalten hier, bietet PDFTRON eine Methode für die spezifische Tabellenextraktion

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post