Home    Forum    Search    FAQ    Register    Log in


Post new topic  Reply to topic 
Page 1 of 2
Goto page 1, 2  Next
 
Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO]
Author Message
Reply with quote   Download Post  
Post 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 
tincho - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post 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
 



 
tercoIDE - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post 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.
 



 
tincho - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post 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 
tincho - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO] 
 
Me parece que a mi no funciona.  
 



 
vuott - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post 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.
 



 
tincho - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post 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.
 



 
tincho - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post 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: 92 Time(s)
Ejemplo.pdf
Description:  
Download
Filename: Ejemplo.pdf
Filesize: 216.49 KB
Downloaded: 92 Time(s)
Ejemplo.pdf
Description:  
Download
Filename: Ejemplo.pdf
Filesize: 216.49 KB
Downloaded: 92 Time(s)

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - View user's profileSend private messageVisit poster's website 
Back to topPage bottom
Reply with quote   Download Post  
Post 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.
 



 
tincho - View user's profileSend private message 
Back to topPage bottom
Reply with quote   Download Post  
Post Re: Reemplazar Un Texto Dentro De Un PDF [SOLUCIONADO] 
 
A mi la solución de tincho de todos modos sigue no funcionando.  
 



 
vuott - View user's profileSend private message 
Back to topPage bottom
Display posts from previous:    
 
HideSimilar Topics
Topic Author Forum Replies Last Post
No new posts Línea De Texto Larga. SOLUCIONADO Shell General 11 Sunday, 11 February 2018, 19:50 View latest post
jguardon
No new posts Reemplazar Texto En Un PDF Usando .fodt jsbsan Aplicaciones/Fragmentos de Código 10 Thursday, 16 April 2020, 11:58 View latest post
portaro
No new posts Coleccion Dentro De Un Formulario De Un Wo... tincho Proyecto gauchoCAD 3 Friday, 22 May 2020, 19:33 View latest post
tincho
No new posts Como Se Hizo.... El Programa Buscar Y Reem... jsbsan Videotutoriales 5 Tuesday, 30 June 2020, 00:06 View latest post
portaro
 

Post new topic  Reply to topic  Page 1 of 2
Goto page 1, 2  Next

Users browsing this topic: 0 Registered, 0 Hidden and 1 Guest
Registered Users: None


 
Permissions List
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



  

 

cron