Author |
Message |
tincho
Analista Programador
Joined: November 2014
Posts: 2565
Age: 48 Location:
|
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
Last edited by tincho on Tuesday, 07 April 2020, 23:27; edited 1 time in total
|
#1 Tuesday, 07 April 2020, 03:52 |
|
|
tercoIDE
Analista Programador
Joined: November 2013
Posts: 713
Age: 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 Tuesday, 07 April 2020, 21:48 |
|
|
tincho
Analista Programador
Joined: November 2014
Posts: 2565
Age: 48 Location:
|
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 Tuesday, 07 April 2020, 23:23 |
|
|
tincho
Analista Programador
Joined: November 2014
Posts: 2565
Age: 48 Location:
|
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.
Last edited by tincho on Wednesday, 08 April 2020, 11:18; edited 1 time in total
|
#4 Tuesday, 07 April 2020, 23:27 |
|
|
vuott
Analista Programador
Joined: August 2013
Posts: 2086
Age: 60 Location:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Me parece que a mi no funciona.
|
#5 Wednesday, 08 April 2020, 07:55 |
|
|
tincho
Analista Programador
Joined: November 2014
Posts: 2565
Age: 48 Location:
|
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 Wednesday, 08 April 2020, 11:21 |
|
|
tincho
Analista Programador
Joined: November 2014
Posts: 2565
Age: 48 Location:
|
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 Wednesday, 08 April 2020, 11:28 |
|
|
jsbsan
Analista Programador
Joined: September 2009
Posts: 4175
Age: 51 Location: 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"
Description: |
|
Download |
Filename: |
Ejemplo.pdf |
Filesize: |
216.49 KB |
Downloaded: |
92 Time(s) |
Description: |
|
Download |
Filename: |
Ejemplo.pdf |
Filesize: |
216.49 KB |
Downloaded: |
92 Time(s) |
Description: |
|
Download |
Filename: |
Ejemplo.pdf |
Filesize: |
216.49 KB |
Downloaded: |
92 Time(s) |
|
#8 Monday, 13 April 2020, 13:40 |
|
|
tincho
Analista Programador
Joined: November 2014
Posts: 2565
Age: 48 Location:
|
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 Monday, 13 April 2020, 17:42 |
|
|
vuott
Analista Programador
Joined: August 2013
Posts: 2086
Age: 60 Location:
|
Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
A mi la solución de tincho de todos modos sigue no funcionando.
|
#10 Monday, 13 April 2020, 18:11 |
|
|
|