domenica 13 ottobre 2019

Leggere il testo di un file pdf tramite itextsharp VB.Net e C#

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_net-leggere-il-testo-di-un-file-pdf-tram_1639.aspx

In questo articolo vedremo come leggere i file di tipo “PDF” tramite la libreria itextsharp scaricabile gratuitamente tramite Nuget di Visual Studio 2017.
Vedremo come tramite linguaggio di programmazione Visual Basic Net e C#, di un progetto di tipo Windows Application, viene letto il contenuto all'interno di un file Pdf.

Creazione del progetto e stesura del codice

Dopo aver creato e salvato un file di tipo “pdf” si crea un nuovo progetto in Visual Studio 2017, secondo il linguaggio di proprio interesse.
Come modello di progetto, scegliere come categoria “Desktop per Windows” e tra i modelli “applicazione Windows form” .
A questo punto inseriamo nel nostro progetto un pulsante, che permette di eseguire la lettura dei file “Pdf”.
Dobbiamo aggiungere tramite la finestra Nuget, il riferimento alla libreria ItextSharp, per fare questa andiamo in esplora soluzione, e tramite il tasto destro sulla voce “Riferimenti” del progetto, dal menu di scelta rapida selezioniamo la voce “Gestisci Pacchetti Nuget”.
Dalla finestra che viene aperta cercare nella casella di ricerca il componente “ItextSharp” il tutto come mostrato in figura 1.

Figura 1 – La finestra per l’aggiunta del componente.

In questo modo verrà aggiunto al progetto tale componente che ci permette di gestire i file “Pdf”.

Stesura del codice.

Dopo aver aggiunto il componente gratuito ItextSharp, possiamo iniziare a scrivere il codice, prima di tutto, bisogna aggiungere lo spazio dei nomi, per utilizzare le classi che ci fornisce il componente.
Passiamo in visualizzazione codice, ed in alto sopra ad ogni dichiarazione, dobbiamo aggiungere lo spazio dei nomi a “ItextSharp.text.pdf”, qui di seguito si riportano le dichiarazioni per entrambi linguaggi.


 

VB.Net

Imports iTextSharp.text.pdf

C#

using iTextSharp.text.pdf;


Ritorniamo in visualizzazione della nostra form, e facciamo doppio click sul pulsante in modo che passiamo in visualizzazione codice nell’evento click del pulsante.
Ora dobbiamo scrivere il codice che ci permette di leggere il file pdf, questo avviene tramite la classe “PdfReader” passando come parametro il percorso e nome del file pdf, dopo aver iniziato tale classe, dobbiamo effettuare un ciclo su ogni pagina per estrapolare il testo presente.
Inoltre, ma non è obbligatorio, possiamo effettuare lo split, ossia creare una variabile di tipo array, per ogni riga.
Al termine dell’elaborazione, utilizzare il metodo “Close” dell’oggetto PdfReader in modo che chiudiamo lo stream sul file.
Qui di seguito si riporta tale dichiarazioni per entrambi i linguaggi di programmazione.



VB.Net

Private Sub BtnLeggi_Click(sender As Object, e As EventArgs) Handles BtnLeggi.Click

        Using readerPdf As PdfReader = New PdfReader("D:\FilePdf.pdf")

            Dim testoEstrapolato As String = ""

 

            For contaPagine As Integer = 1 To readerPdf.NumberOfPages

                testoEstrapolato += iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(readerPdf, contaPagine)

            Next

 

            Dim RigheTesto As String() = testoEstrapolato.Split({vbCrLf, vbCr, vbLf}, StringSplitOptions.None)

            readerPdf.Close()

        End Using

    End Sub

C#

  private void BtnLeggi_Click(object sender, EventArgs e)

        {

            using (PdfReader readerPdf = new PdfReader("D:\\FilePdf.pdf"))

            {

                string testoEstrapolato = "";

                for (int contaPagine = 1; contaPagine <= readerPdf.NumberOfPages; contaPagine++)

                {

                    testoEstrapolato += iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(readerPdf, contaPagine);

                }

                string[] RigheTesto = testoEstrapolato.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);

                readerPdf.Close();

            }

          

 

        }




Conclusioni

L’articolo ha voluto fornire al lettore la conoscenza di base per gestire i file “Pdf” tramite la libreria gratuita “ItextSharp” con il quale si possono effettuare determinate operazioni sui file di Adobe.
La libreria offre numerose proprietà e metodi che permettono al programmatore di effettuare anche complesse operazioni su questi file di sola lettura.
Una libreria da utilizzare nei propri progetti che offre interessanti funzionalità.

Nessun commento: