Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]


Goto page 1, 2  Next

Subject: 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
Profile PM  
Subject: 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

Profile PM  
Subject: 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.

Profile PM  
Subject: 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
'' Esta función trabaja con el programa de terminal qpdf y luego de crear el ar
'' chivo pdf descompriomido devuelve la ruta de este.

Public Function PDFDecompress(inp As String) As String

Dim out As String
Dim com As String

out = File.Dir(inp) &/ File.BaseName(inp) & "-unc.pdf"
com = "qpdf --stream-data=uncompress '"
com &= inp & "' '" & out & "'"

Shell com Wait

If Exist(out) Then

If Stat(out).Type = gb.File Then
Return out
Else
Return ""
Endif
Endif

End


Paso 3 - Reemplazar el texto
Public Function PDFReplace(inp As String, s As String, r As String) As String

Dim out As String
Dim com As String

out = File.Dir(inp) &/ File.BaseName(inp) & "-rep.pdf"

com = "sed -e \"s/"
com &= s & "/"
com &= r & "/g\" <'"
com &= inp & "' >'" & out & "'"
Print com

Shell com Wait

If Exist(out) Then
If Stat(out).Type = gb.File Then
Return out
Else
Return ""
Endif
Endif

End


Saludos.

Last edited by tincho on Wednesday, 08 April 2020, 11:18; edited 1 time in total
Profile PM  
Subject: Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Me parece que a mi no funciona.

Profile PM  
Subject: 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.

Profile PM  
Subject: 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.

Profile PM  
Subject: 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"


Ejemplo.pdf
Description:  
Download
Filename: Ejemplo.pdf
Filesize: 216.49 KB
Downloaded: 93 Time(s)
Ejemplo.pdf
Description:  
Download
Filename: Ejemplo.pdf
Filesize: 216.49 KB
Downloaded: 93 Time(s)
Ejemplo.pdf
Description:  
Download
Filename: Ejemplo.pdf
Filesize: 216.49 KB
Downloaded: 93 Time(s)

Subject: 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.

Profile PM  
Subject: Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
A mi la solución de tincho de todos modos sigue no funcionando.

Profile PM  
Goto page 1, 2  Next

Page 1 of 2


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1413s (PHP: -12% SQL: 112%)
SQL queries: 26 - Debug Off - GZIP Enabled