Estrarre il testo contenuto in un file PDF con Xpdf

di Ugo Lattanzi, in ASP.NET 2.0,

Tramite Xpdf, scaricabili dal sito http://www.foolabs.com/xpdf/download.html sotto licenza GNU (GPL), possiamo effettuare innumerevoli operazioni su file PDF, come salvare le immagini, estrapolarne il testo, vedere l'autore, la versione, ecc.

In questo script ci occuperemo dell'estrapolazione del testo per poi poterlo utilizzare nelle nostre applicazioni, magari per indicizzare il file all'interno del nostro motore di ricerca.

I tools sono funzionanti per diversi piattaforme e nel nostro caso ci limiteremo ad utilizzare la versione per DOS, comandabile da riga di comando.

Per poter eseguire lo script è necessario disporre dei permessi di esecuzione all'interno della cartella dove si trova il file pdftotext.exe.

Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = @"G:\AspItalia\Script\PDF\Pdf2Text\pdftotext.exe";
process.StartInfo.Arguments = "-enc UTF-8 -eol dos \"" + @"G:\AspItalia\Script\PDF\Pdf2Text\testFile.pdf" + "\" -";
process.StartInfo.WorkingDirectory = @"G:\AspItalia\Script\PDF\Pdf2Text\";

process.Start();

string end = process.StandardOutput.ReadToEnd();

Encoding enc = process.StandardOutput.CurrentEncoding;
byte[] output = enc.GetBytes(end);
return System.Text.Encoding.UTF8.GetString(output);

La libreria è molto performante, ma è consigliabile l'utilizzo di questo script all'interno di un thread separato da quello legato alla nostra GUI, perchè nell'estrapolare il testo da un documento di grandi dimensioni si può arrivare anche ad alcuni minuti di durata per l'intera operazione.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi