Asunto: Extraer texto de un fichero pdf (Acrobat) con Visual Basic
¿hay alguna forma de extraer el texto de un fichero PDF (Portable Document Format - Formato de Documento Portátil)?
Utilizo Visual Basic 6 y me gustaría saber si existe alguna forma de sacar el texto de un fichero PDF.
Tengo una aplicación que genera determinados datos de los clientes en PDF, siempre con el mismo formato y he comprobado que los ficheros PDF que genera no están protegidos, por lo que quiero acceder a cada uno de ellos y obtener un dato (el CIF del cliente).
Puesto que el formato siempre es:
CIF Cliente: ....
creo que es posible si puediera obtener el texto de los ficheros pdf con Visual Basic.
Publicado:
Jue Abr 05, 2007 7:30 am
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: Otro uso: indexar contenido para realizar búsquedas en pdf
Se me olvidaba comentar que otro uso que quiero darle es el siguiente: tengo miles de ficheros pdf pues en nuestra organización, todos los documentos que utilizamos siempre los generamos en PDF, el problema es que cuando queremos buscar algún texto contenido en alguno de estos ficheros pdf tengo que hacerlo con una aplicación externa (Google Desktop, etc) y es bastante incómodo, sobre todo para los usuarios.
La idea es poder hacer una aplicación en Visual Basic que obtenga todo el texto de todos los ficheros pdf y lo guarde en una base de datos junto con el nombre del documento y la ubicación, de esta forma, realizando la búsqueda en la base de datos podría abrir directamente el fichero pdf que contenga el texto de búsqueda.
Publicado:
Jue Abr 05, 2007 7:37 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Otro uso: indexar contenido para realizar búsquedas en p
Anuncios
varios escribió:
Se me olvidaba comentar que otro uso que quiero darle es el siguiente: tengo miles de ficheros...
Tal vez te pueda servir este código de una de nuestras aplicaciones. Está realizado en Visual Basic 6 y obtiene / extráe / saca el texto de un fichero pdf (de acrobat).
Necesitarás un formulario y dentro de éste: dos CommandButton, dos TextBox, un Label y un CommonDialog.
El código fuente / source code completo en Visual Basic:
Código:
Option Explicit
Private objPDF As Object
Private pagPDF As Object
Private pagHilitelist As Object
Private pagActual As Object
Private datosPDF As String
Private numPagPDFObj As Object
Private resultadoApertura As Boolean
Private resultadoCierre As Boolean
Private resultadoHilitelist As Boolean
Private numPaginas As Integer
Private rutaFicheroPDF As String
Private numeroPagina As Integer
'intentamos abrir el fichero pdf de acrobat
If resultadoApertura = False Then
Set numPagPDFObj = Nothing
MsgBox "Error al intentar abrir el fichero pdf indicado. " + _
"Puede que no sea un PDF de adobe o que el " + _
"fichero esté corrupto.", vbExclamation, vbOK
Exit Sub
End If
'obtenemos el número de páginas del documento pdf
numPaginas = numPagPDFObj.GetNumPages
resultadoCierre = numPagPDFObj.Close
If resultadoCierre = False Then
Set numPagPDFObj = Nothing
MsgBox "Error al intentar cerrar el fichero pdf indicado. ", _
vbExclamation, vbOK
Exit Sub
End If
Set numPagPDFObj = Nothing
Set objPDF = CreateObject("acroexch.pddoc")
resultadoApertura = objPDF.Open(rutaFicheroPDF)
For numeroPagina = 0 To numPaginas - 1
DoEvents
obtenerTextoPaginaPDF numeroPagina
lInfo.Caption = "Extrayendo : " & numeroPagina + 1 & _
" de " & numPaginas
Next
Set objPDF = Nothing
lInfo.Caption = "Nº de páginas extraídas del pdf: " _
& numPaginas
cSalir:
Exit Sub
cError:
MsgBox "No se ha podido extraer el texto del fichero pdf:" + _
vbCrLf + vbCrLf + " · Nº error: " + Err.Number + _
vbCrLf + " · Descripción error: " + Err.Description, vbExclamation, vbOK
lInfo.Caption = "Error al obtener texto de pdf"
GoTo cSalir
End Sub
Private Sub obtenerTextoPaginaPDF(numPagina As Integer)
Dim i As Integer
On Error GoTo cError
'creamos un objeto de página pdf, desde una página especificada
Set pagPDF = objPDF.AcquirePage(numPagina)
'crearemos un objeto "hilitelist", lo utilizaremos para extraer el texto
Set pagHilitelist = CreateObject("acroexch.hilitelist")
resultadoHilitelist = pagHilitelist.Add(0, 9000)
Set pagActual = pagPDF.CreatePageHilite(pagHilitelist)
For i = 0 To pagActual.GetNumText - 1
DoEvents
datosPDF = datosPDF & pagActual.GetText(i)
Next
Set pagPDF = Nothing
Set pagHilitelist = Nothing
Set pagActual = Nothing
cSalir:
Exit Sub
cError:
MsgBox "No se ha podido extraer el texto del fichero pdf:" + _
vbCrLf + vbCrLf + " · Nº error: " + Err.Number + _
vbCrLf + " · Descripción error: " + Err.Description, vbExclamation, vbOK
lInfo.Caption = "Error al obtener texto de pdf"
txtTexto.Text = datosPDF
GoTo cSalir
End Sub
Private Sub Form_Load()
lInfo.Caption = ""
End Sub
Publicado:
Vie Abr 06, 2007 11:36 am
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: Añadir descarga Visual Basic para extraer texto pdf
El código que has puesto me ha sido de gran utilidad ¿podrías poner la aplición de ejemplo en descargas?
Publicado:
Vie Abr 06, 2007 11:43 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Añadir descarga Visual Basic para extraer texto pdf
Anuncios
varios escribió:
El código que has puesto me ha sido de gran utilidad ¿podrías poner la aplición de ejemplo en descargas?
Acabamos de añadir dicha descarga "AjpdSoft extraer texto PDF" en la sección descargas de esta web, para descargarla:
Hola a todos soy nuevo en este foro.
Intente usar el programa de ejemplo para convertir un PDF a un texto y no pude hacer que funcione.
Lo intente con varios archivos pero ninguno parece trabajar.
Saludos
Publicado:
Mie Abr 25, 2007 3:40 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: PDF a access
Anuncios
iceberg escribió:
Hola a todos soy nuevo en este foro.
Intente usar el programa de ejemplo para convertir un PDF a un texto y no pude hacer que funcione.
Lo intente con varios archivos pero ninguno parece trabajar.
Saludos
¿te da algún mensaje de error? si es así necesitaríamos saber cual para intentar ayudarte.
Recuerda que es una aplicación Visual Basic que utiliza el objeto acroexch.pddoc, con lo cual es probable que necesite las dlls correspondientes de Acrobat Reader.
Publicado:
Dom May 06, 2007 3:10 pm
davidf Usuario
Registrado: May 17, 2007 Mensajes: 1
Asunto:
Este codigo funciona perfectamente si tenemos instalado el acrobat 5.0 pero, ¿alguien me podria indicar como hacerlo con el adobe 8.0 ?
Publicado:
Jue May 17, 2007 4:11 pm
rodrigoJR Usuario
Registrado: Nov 02, 2011 Mensajes: 1
Asunto: Extraer texto desde un PDF con Visual Basic
Estimados...
Estoy intentando ejecutar el codigo que se encuentra en la pagina , pero me ha sido imposible, no se que librerias agregar al modulo para que este funcion, al crear el objeto
Set numPagPDFObj = CreateObject("acroexch.pddoc") , el programa se cae y no se que librerias mas agregar...
que me falta para que este codigo funcione ?, necesito su ayuda en forma urgente ya que el tiempo de mi desarrollo se esta acabando y no se como resolver este gran problema...por favor necesito vuestra ayuda.
saludos desde Santiago de Chile.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A