domingo, 7 de marzo de 2010

Lectura de archivos PDF con VB.NET

Estos días he estado peleándome con el siguiente problema: leer y procesar información de un archivo PDF. Es decir, extraer de un PDF el texto y luego insertarlo en una base de datos. Para ello estuve buscando por la internet y encontré una magnífica librería llamada PDFBox. Esta incluye una gran cantidad de clases para trabajar con PDFs.

De entre todas las DLLs que la librería incluye necesitaremos referenciar los siguientes en nuestro proyecto .NET:
  • FontBox-0.1.0-dev.dll
  • IKVM.GNU.Classpath.dll
  • IKVM.Runtime.dll
  • PDFBox-0.7.3.dll

El código para pasar el contenido de un PDF a un string sería el siguiente:




Imports org.pdfbox.util
Imports org.pdfbox.pdmodel
Imports System.TypeInitializationException
...

Dim documento As PDDocument
Dim stripper As PDFTextStripper
Dim texto As String

Try
documento = PDDocument.load("C:\informe.pdf")
stripper = New PDFTextStripper()
texto = stripper.getText(documento)
Catch ex As TypeInitializationException
Finally
End Try

10 comentarios:

  1. Disculpa si intento leer varios archivos con extension pdf pero algunos no traen texto solo son imagenes el progarma truena en la cadena texto = stripper.getText(documento) como puedo hacer para preguntar si viene vacia esa cadena ya lo intente de varias formas pero no logro conseguirlo, Garcias

    ResponderEliminar
  2. Excelente, funciona muy bien

    ResponderEliminar
  3. al intentar leer un resumen de tarjeta de crédito (estoy haciendo un programa para gestionar todos los resúmenes mal ordenados de mi PC) salta la excepción:

    java.util.zip.ZipException: 'Header checksum illegal'

    para el resto de pdf funciona jaja

    ResponderEliminar
  4. Hola a todos. de donde saco los .dll para importar?. me lo podrian pasar al mail. gracias. hector

    ResponderEliminar
  5. Hola, alguno lo uso para llenar un datagridview?? Quiero cargar una base de datos con una lista de precios y se me está complicando. Desde ya, muchas gracias!

    ResponderEliminar