** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - CONVERTIR PDF A TXT
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCONVERTIR PDF A TXT

 Responder Responder
Autor
Mensaje
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Tema: CONVERTIR PDF A TXT
    Enviado: 07/Abril/2016 a las 16:59
muy buen dia a todos !!! Estoy trabajando sobre la conversion de un archivo pdf a formato txt; y hasta ahora aun no consegui hacerlo desde codigo de vba. Alguien ha hecho codigo al respecto?, o me podria orientar sobre como hacerlo.  Desde ya muchisimas gracias.
Saludos desde Buenos Aires , Argentina.

Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1925
Enlace directo a este mensaje Enviado: 07/Abril/2016 a las 17:32
Hola,

Mírate este post, es viejo y quizás no te funcione pero al menos es algo para empezar.

http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&t=198


Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 07/Abril/2016 a las 17:45
Ok. lo voy a ver ya mismo! Muchas gracias Ximo !. Saludos desde Buenos Aires, Argentina.
Arriba
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 07/Abril/2016 a las 19:52
Ximo: Estoy armando el formulario, con los dos botones, los dos cuadros text, la etiqueta, y salta un error nro. 2185 sobre txtTexto.Text = ""
mañana seguire mirando con mas detenimiento, pero ya estoy embarcado. Muchas gracias
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 132
Enlace directo a este mensaje Enviado: 07/Abril/2016 a las 20:57
Por si te sirve de ayuda, yo utilizo el pdftotext de xpdf ejecutado desde Access a través de su línea de comandos, generalmente se extrae bien el contenido de los pdfs, para probarlo genera un pdf a partir de un Word, veras como te hace la extracción de su contenido a txt correctamente.

http://www.foolabs.com/xpdf/download.html

http://www.experts-exchange.com/videos/217/Xpdf-Convert-PDF-Files-to-Plain-Text-Files-Part-3.html
Arriba
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 08/Abril/2016 a las 12:34
Buen dia a todos !, Muchas Gracias fcoval, lo voy a ver, pero mi idea es lograr hacer funcionar el código de Ximo; quiero hacerlo desde codigo directo. Muchas Gracias por tu gentileza; son apreciadas. Saludos desde Buenos Aires, Argentina !

Editado por aramallo - 08/Abril/2016 a las 12:51
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 132
Enlace directo a este mensaje Enviado: 08/Abril/2016 a las 16:12
Publicado originalmente por aramallo aramallo escribió:

...pero mi idea es lograr hacer funcionar el código de Ximo...


Pues imagino que sabras que para que te funcione deberas de tener instalado el Adobe Acrobat.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 11055
Enlace directo a este mensaje Enviado: 09/Abril/2016 a las 10:26
Aquí tienes otro ejemplo (usa el PdfToText).

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 11/Abril/2016 a las 14:49
buen dia! muchas gracias Mihura ! Estoy trabajando sobre los dos ejemplos y en ambos casos me tira error. Muchas gracias y Saludos desde Buenos Aires

Editado por aramallo - 11/Abril/2016 a las 16:59
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 132
Enlace directo a este mensaje Enviado: 12/Abril/2016 a las 12:44
Publicado originalmente por aramallo aramallo escribió:

buen dia! muchas gracias Mihura ! Estoy trabajando sobre los dos ejemplos y en ambos casos me tira error. Muchas gracias y Saludos desde Buenos Aires
 
Para que te funcione utiliza el fichero pdftotext.exe acorde a tu sistema de 32 o 64 bits.
 
Por defecto, en el ejemplo de Mihura, se llama dentro de la funcion al fichero pdftotext.exe (que es para 64 bits), renombra el fichero pdftotext32.exe  a pdftotext.exe  si tu sistema es de 32 bits.
 
Ademas, prueba el ejemplo en alguna carpeta donde no hayan espacios en blanco.
 
 
 
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 132
Enlace directo a este mensaje Enviado: 12/Abril/2016 a las 13:11

Por si quieres usar rutas con espacios en blanco, te pongo el codigo que vengo usando

Sub prueba()

Dim Ruta As String
Ruta = CurrentProject.Path


Dim app As String
app = RutaCorta(Ruta) & "\pdftotext32.exe"

Shell app & _
" -layout " & Chr$(34) & Ruta & Chr$(34) & "\Fichero.pdf" & _
" " & Chr$(34) & Ruta & Chr$(34) & "\prueba.txt"

End Sub


Function RutaCorta(strRutaLarga As String) As String


 Dim fso As Object 'New FileSystemObject
 Dim FCarpeta As Object ' Folder

 Set fso = CreateObject("Scripting.FileSystemObject")
 Set FCarpeta = fso.GetFolder(strRutaLarga)
 RutaCorta = FCarpeta.ShortPath

End Function

Arriba
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 12/Abril/2016 a las 13:13
Buen dia Fcoval !!! si muchisimas gracias por tu ayuda !!!, lo he probado desde la linea de comando y funciona perfectamente !, ahora estoy haciendo el codigo para elegir el pdf y que lo carge en el text box. Y en estos dias ya lo tendré implementado. 
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 132
Enlace directo a este mensaje Enviado: 13/Abril/2016 a las 08:00
Por si quieres combinarlo con el ejemplo de Mihura para que puedas elegir hacerlo de forma asincrona/sincrona.
 
Y por si vas a usar nombres de pdf con espacios en blanco en el propio nombre del pdf
 
 
'****************************************************************************
' Ejecutamos una shell de forma directa (1) o de forma sincrona/asincrona (2)
'****************************************************************************
Sub ConvPDFaTXT()

Dim Ruta As String
'Ruta = "D:\tmp_adjuntos"
Ruta = CurrentProject.Path

Dim app As String
'app = "C:\windows\system32\cmd.exe /k D:\tmp_adjuntos\pdftotext32.exe"
'app = "D:\tmp_adjuntos\pdftotext32.exe"  ' ( SIN CONSOLA)
app = RutaCorta(Ruta) & "\pdftotext32.exe"
 
'Linea de comando a crear:
'pdftotext -layout FicheroPdf.pdf FicheroPdf.txt
Dim FileOrigen As String, FileDestino As String
FileOrigen = "00 Norma_DATOS_CONFIDENCIALES.pdf"
FileDestino = "00 Prueba.txt"
 
'1) PARA LANZARLO DIRECTAMENTE A TRAVES DE SHELL
'Shell app & _
" -layout " & Chr$(34) & Ruta & Chr$(34) & "\MificheroPdf.pdf" & _
" " & Chr$(34) & Ruta & Chr$(34) & "\MificheroPdf.txt"
'Shell app & _
" -layout " & Chr$(34) & Ruta & "\" & FileOrigen & Chr$(34) & "" & _
" " & Chr$(34) & Ruta & "\" & FileDestino & Chr$(34) & ""
 

'2) PARA LANZARLO Y QUE ESPERE A QUE ACABE
Dim MiTxtParaShell As String
'MiTxtParaShell = app & _
" -layout " & Chr$(34) & Ruta & Chr$(34) & "\MificheroPdf.pdf" & _
" " & Chr$(34) & Ruta & Chr$(34) & "\MificheroPdf.txt"
MiTxtParaShell = app & _
" -layout " & Chr$(34) & Ruta & "\" & FileOrigen & Chr$(34) & "" & _
" " & Chr$(34) & Ruta & "\" & FileDestino & Chr$(34) & ""
 
'Debug.Print MiTxtParaShell
RT1_ShellWSH MiTxtParaShell, True
 

End Sub

Function RutaCorta(strRutaLarga As String) As String

 Dim fso As Object 'New FileSystemObject
 Dim FCarpeta As Object ' Folder
 Set fso = CreateObject("Scripting.FileSystemObject")
 Set FCarpeta = fso.GetFolder(strRutaLarga)
 RutaCorta = FCarpeta.ShortPath
'Debug.Print RutaCorta
End Function

'*******************************************************************************
'* ShellWSH directo
'* Llama al shell de WSH permitiendo la posibilidad de hacerlo de manera
'* sincrona o asincrona
'* Argumentos: strRutaAplicacion => Ruta de la aplicación a ejecutar
'*             blnEsperar        => (opcional) esperar a la finalización.
'* uso: ShellWSH C:\00ACCE~1\PDFATX~1\pdftotext32.exe -layout "E:\00 Access_Basic\mi prueba.pdf" "E:\00 Access_Basic\mi prueba.txt", True
'* ESH 25/10/05 17:28
'*******************************************************************************
 
Public Sub RT1_ShellWSH(strRutaAplicacion As String, Optional blnEsperar As Boolean)
    Dim vntResultado As Variant, WSHShell As Object
 
    Set WSHShell = CreateObject("WScript.Shell")
    
    vntResultado = WSHShell.Run(strRutaAplicacion, 8, blnEsperar)
    
    Set WSHShell = Nothing
 
End Sub
 
 
Te lo pongo mas fácil. Wink
 

 
Arriba
aramallo Ver desplegable
Habitual
Habitual


Unido: 20/Abril/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 152
Enlace directo a este mensaje Enviado: 13/Abril/2016 a las 12:42
Buen dia Fcoval!!! Buenisimo en los dos casos !!! Muchisimas gracias !!!!  Muy bueno !!!... Y muchas gracias tambien a XIMO, MIHURA  por todos sus aportes. Abrazo desde Buenos Aires !!! .
Y con esto doy por cerrado este hilo.

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable