Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Nick


Contraseña


Nuevo usuario


English
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Extraer texto de un fichero pdf (Acrobat) con Visual Basic
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Extraer texto de un fichero pdf (Acrobat) con Visual Basic

Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Extraer texto de un fichero pdf (Acrobat) con Visual Basic Responder citando

¿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.
MensajePublicado:
Jue Abr 05, 2007 7:30 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Otro uso: indexar contenido para realizar búsquedas en pdf Responder citando

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.
MensajePublicado:
Jue Abr 05, 2007 7:37 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Otro uso: indexar contenido para realizar búsquedas en p Responder citando



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



Private Sub bObtenerTextoPDF_Click()
  txtTexto.Text = ""
  datosPDF = ""
  lInfo.Caption = ""
 
  extraerTextoPDF
 
  txtTexto.Text = datosPDF
   
  MsgBox "El proceso de extracción de texto de fichero PDF " + _
      "ha finalizado correctamente.", vbInformation, "Extraer texto PDF"
End Sub

Private Sub bSelPDF_Click()
  dlAbrir.ShowOpen
  txtFichero.Text = dlAbrir.FileName
End Sub


Private Sub extraerTextoPDF()
 
  On Error GoTo cError
 
  'crearemos un objeto de tipo "pddoc" para el acceso al PDF
  Set numPagPDFObj = CreateObject("acroexch.pddoc")
       
  rutaFicheroPDF = txtFichero.Text
  resultadoApertura = numPagPDFObj.Open(rutaFicheroPDF)
   
  '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
MensajePublicado:
Vie Abr 06, 2007 11:36 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Añadir descarga Visual Basic para extraer texto pdf Responder citando

El código que has puesto me ha sido de gran utilidad ¿podrías poner la aplición de ejemplo en descargas?
MensajePublicado:
Vie Abr 06, 2007 11:43 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Añadir descarga Visual Basic para extraer texto pdf Responder citando



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:

http://www.ajpdsoft.com/modules.php?name=Downloads&d_op=viewdownloaddetails&lid=174
MensajePublicado:
Vie Abr 06, 2007 12:13 pm
Top of PageVer perfil de usuario
iceberg
Usuario


Registrado: Apr 25, 2007
Mensajes: 1

Asunto: PDF a access Responder citando

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
MensajePublicado:
Mie Abr 25, 2007 3:40 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: PDF a access Responder citando



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.
MensajePublicado:
Dom May 06, 2007 3:10 pm
Top of PageVer perfil de usuario
davidf
Usuario


Registrado: May 17, 2007
Mensajes: 1

Asunto: Responder citando

Este codigo funciona perfectamente si tenemos instalado el acrobat 5.0 pero, ¿alguien me podria indicar como hacerlo con el adobe 8.0 ?
MensajePublicado:
Jue May 17, 2007 4:11 pm
Top of PageVer perfil de usuario
rodrigoJR
Usuario


Registrado: Nov 02, 2011
Mensajes: 1

Asunto: Extraer texto desde un PDF con Visual Basic Responder citando

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.

Rodrigo.
MensajePublicado:
Mie Nov 02, 2011 1:43 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » VB.Net, C# .Net, Visual Studio .Net  

Cambiar a:  
Key
  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
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+