Autor |
Mensaje |
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Hola a todos.
Alguien sabe como reemplazar un texto dentro de un PDF por otro.
Estoy usando algo así:
xpdf = New PdfDocument(f)
xpdf.Open(f)
If xpdf[2].Find("textoareemplazar") = True Then
' Bueno el caso es que encuentra que en una pagina determinada existe ese texto pero ¿como lo reemplazo?
Next
Endif
Saludos
última edición por tincho el Martes, 07 Abril 2020, 23:27; editado 1 vez
|
#1 Martes, 07 Abril 2020, 03:52 |
|
|
tercoIDE
Analista Programador
Registrado: Noviembre 2013
Mensajes: 713
Edad: 54
|
Re: Reemplazar Un Texto Dentro De Un PDF
hasta donde yo se, los PDF estan hechos para que solo se puedan leer...
porque algunos contienen imagenes de texto, no texto, o una combinacion de ambas cosas
o sea, no tengo la mas palida idea de como hacerlo
|
#2 Martes, 07 Abril 2020, 21:48 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF
tercoIDE escribió: hasta donde yo se, los PDF estan hechos para que solo se puedan leer...
porque algunos contienen imagenes de texto, no texto, o una combinacion de ambas cosas
o sea, no tengo la mas palida idea de como hacerlo
Si la idea de los pdf es que sean solo lectura, pero si son PDF "texto" se pueden "hackear"
Saludos.
|
#3 Martes, 07 Abril 2020, 23:23 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF
Ok, encontré una forma, no gambosa, de hacerlo. Para ello uso el programa de la Shell sed
Pero el archivo debe estar "descomprimido" y para ello hay que usar otro programa Shell llamado qpdf
Dejo las dos funciones aquí
Para reemplazar el texto
[code linenumbers=false syntax= gambas]
'' Esta función trabaja con el programa de terminal sed y lo que hace es reempl
'' azar, en un archivo el texto buscado por su reemplazo.
'' Luego devuelve la ruta del archivo alterado.
'' Nota: El archivo PDF debe estar sin comprimir.
Paso 1 Desencriptar
'' Funcion que utiliza el programa gostscript de la terminal shell.
'' Desencripta el PDF que del que se pasa su rura como parámetro y luego si tod
'' do fu e correcto, devuelve la ruta del nuevo archivo desencriptado.
Public Function PDFDecrypt(strPath As String) As String
Dim strName As String
Dim strCommand As String
Dim prsCommand As Process
strName = File.Dir(strPath) &/ File.BaseName(strPath) & "-dcr.pdf"
strCommand = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile='"
strCommand &= strName & "' -c .setpdfwrite -f '" & strPath & "'"
prsCommand = Shell strCommand
While prsCommand.State = prsCommand.Running
Wait 0.05
Wend
If Exist(strName) Then
If Stat(strName).Type = gb.File Then
Return strName
Else
Return "0"
Endif
Endif
End
Paso 2 - Descomprimir
Paso 3 - Reemplazar el texto
Saludos.
última edición por tincho el Miercoles, 08 Abril 2020, 11:18; editado 1 vez
|
#4 Martes, 07 Abril 2020, 23:27 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Me parece que a mi no funciona.
|
#5 Miercoles, 08 Abril 2020, 07:55 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
vuott escribió: Me parece que a mi no funciona.
Vuott, agregue una nueva función al principio, que es para desencriptar PDF y ordene los pasos en el mismo sentido que lo use yo (funciono en mi caso).
Nota: El PDF debe ser "texto" no imagen.
Si sigue sin funcionar seguimos depurando ya que no he encontrado todavía un caso en que no funcione.
Saludos.
|
#6 Miercoles, 08 Abril 2020, 11:21 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Yo he probado con el siguiente PDF - Introducing-Go.pdf
Si sigue sin funcionar y es posible transmitan el link del pdf que no lo hace o una descripción del método de generación de dicho documento, es decir si proviene de libreoffice u otro programa.
Saludos.
|
#7 Miercoles, 08 Abril 2020, 11:28 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Tincho:
No lo consigo que funcione...
Te adjunto un fichero .pdf generado con el programa PRESTO.
Si este .pdf lo abro con LibreOffice y lo guardo como .pdf, tampoco funciona.
Nota:
Por ejemplo, lo que intento cambiar es la fecha, donde ponga "12 de abril" que ponga "13 de mayol"
Descripción: |
|
Descargar |
Nombre del archivo: |
Ejemplo.pdf |
Tamaño: |
216.49 KB |
Descargado: |
95 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
Ejemplo.pdf |
Tamaño: |
216.49 KB |
Descargado: |
95 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
Ejemplo.pdf |
Tamaño: |
216.49 KB |
Descargado: |
95 veces |
|
#8 Lunes, 13 Abril 2020, 13:40 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
jsbsan escribió: Tincho:
No lo consigo que funcione...
Te adjunto un fichero .pdf generado con el programa PRESTO.
Si este .pdf lo abro con LibreOffice y lo guardo como .pdf, tampoco funciona.
Nota:
Por ejemplo, lo que intento cambiar es la fecha, donde ponga "12 de abril" que ponga "13 de mayol"
ok, lo pruebo y te comento.
Saludos.
|
#9 Lunes, 13 Abril 2020, 17:42 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
A mi la solución de tincho de todos modos sigue no funcionando.
|
#10 Lunes, 13 Abril 2020, 18:11 |
|
|
|