https://foro.gambas-es.org/viewtopic.php?f=5&t=7965
-----------------------------------
jsbsan
Martes, 14 Abril 2020, 09:14

Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
A raiz del hilo https://foro.gambas-es.org/viewtopic.php?f=5&t=7947 donde Tincho muestra una forma de hacer reemplazos de texto en un fichero .PDF, yo he hecho mi propia solución a este problema (usando libreoffice y los fichero tipo .fodg. internamente y de modo transparente)

Características:
- Puede hacer hasta 5 buscar/reemplazar, a la vez, en el fichero
- Indica si se han realizado los reemplazos (iconito de ok o cancel)
- Le he añadido un sistema de "perfiles" parar guardar la información que tiene que buscar y reemplazar. 

A mi me es útil, porque suelo hacer muchos cambios en varios ficheros  8) 



[b]Nota importante:[/b]
[strike]El programa (el .gambas) debe de estar en el mismo directorio donde estén los .pdf que queramos modifica, sino da errores) y teneis que tener instalado libreoffice[/strike] -> Corregido en version 0.0.18 

Os dejo una captura de pantalla del programa funcionando y el codigo fuente.

[img]https://foro.gambas-es.org/files/images/6/buscar_y_reemplazar_en_pdf.png[/img]


-----------------------------------
tincho
Martes, 14 Abril 2020, 11:43

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
Descargado. !! :mryellow: 
Luego comento como me fue.
Saludos.


-----------------------------------
tercoIDE
Martes, 14 Abril 2020, 12:59

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
mucha actividad gambera !

 :mrgreen:


-----------------------------------
tincho
Martes, 14 Abril 2020, 16:07

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
Julio: en mi sistema da error en:
[code linenumbers=false syntax=gambas]
Public Function AbrirContenido(strPath As String) As String ''Devuelve el contenido del archivo
    Return File.Load(strPath)
End
[/code]
Cargue el archivo "/home/USER/Ejemplo.pdf" que habías pasado en el otro hilo y en la función de arriba intenta abrir el archivo "/home/USER/Ejemplo.fodg" el cual no existe.
El error en mi caso se debe a que no funciona el programa [b]soffice[/b] de la terminal debido a que en mi sistema aparentemente no esta instalado el entorno java.
[quote]
javaldx: Could not find a Java Runtime Environment!
Please ensure that a JVM and the package libreoffice-java-common
is installed.
If it is already installed then try removing ~/.libreoffice/3/user/config/javasettings_Linux_*.xml
Warning: failed to read path from javaldx
Error: source file could not be loaded
[/quote]
Saludos.
De todos modos, si no comprendo mal, en el programa el reemplazo de texto se hace sobre un archivo .fodg y no sobre uno .pdf ¿Eso es correcto?
Si es así, este método funcionaria para cualquier tipo de pdf?
¿Con que programa se creo Ejemplo.pdf? Si lo abro con Evince me dice que el productor es Microsoft: Print To PDF
¿Ambos pdf, el original y el modificado son de idéntico aspecto?
Bueno muchas preguntas no, jaja!
Estoy haciendo unas pruebas con pdf2svg ya que preferiría no instalar java en la maquina. luego comento.

Saludos.


-----------------------------------
tincho
Martes, 14 Abril 2020, 16:09

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
[quote user="tercoIDE" post="47911"]mucha actividad gambera !
 :mrgreen:[/quote]
Si, hay que "gambetearle" a la vida. :mryellow: 
Saludos.


-----------------------------------
jsbsan
Martes, 14 Abril 2020, 18:24

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
Tincho:

[quote]"Please ensure that a JVM and the package libreoffice-java-common"[/quote]
Creo que no tienes instalado LibreOffice, (soffice es libreoffice), y mi programa  lo usa para hacer la conversión a .fodg

[quote] en el programa el reemplazo de texto se hace sobre un archivo .fodg y no sobre uno .pdf ¿Eso es correcto?[/quote]
Si, es correcto.
LibreOfffice lo uso para convertir el .pdf a .fodg
Los archivos .fodg son archivos planos de texto (son .xml), y los abre el LibreOffice Draw (LibreOffice Draw tambien abre los .pdf).
Y los  .xml, los puedes abrir con cualquier programa, al fin al cabo, son fichero de texto plano.

[quote]este método funcionaria para cualquier tipo de pdf?[/quote]
Depende, si LibreOffice Draw los abre bien (quedan formateado correctamente, etc..), entonces si debe funcionar bien mi programa.

[quote]¿Con que programa se creo Ejemplo.pdf? Si lo abro con Evince me dice que el productor es Microsoft: Print To PDF[/quote]
El listado esta hecho con Presto (un programa para hacer presupuesto de obras de Windows) pero al imprimir el listado lo que hice fue usar la Impresora Virtual de Pdf que tiene Windows 10 (por eso pone MIcrosoft: Print To PDF)

[quote]¿Ambos pdf, el original y el modificado son de idéntico aspecto?[/quote]
Con los que yo he probado, si, son prácticamente iguales. 


[quote]Estoy haciendo unas pruebas con pdf2svg ya que preferiría no instalar java en la maquina. luego comento.[/quote]
Si, puede ser otra solución. Inkscape puede que también te valga.

Saludos


-----------------------------------
jsbsan
Martes, 14 Abril 2020, 19:39

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
Video tutorial:

[youtube]kqi7FD0NRaY[/youtube]


-----------------------------------
portaro
Martes, 14 Abril 2020, 23:05

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
Acabo de ver el video y comentarlo aunque no se que pasa pero los comentarios no salen en youtube asi que no se si quedan puestos o no.

Pues lo descargue y en mi caso no se me instala creo que porque mi version Gambas es vieja me da un problema de dependencia gambas3-runtime y no instala. Estoy en Lubuntu base 14.04.

Gracias por compartir seguro es un programa muy bueno como todos los que nos traes maestro.

Saludos amigo.

 :-D


-----------------------------------
jsbsan
Miercoles, 15 Abril 2020, 07:09

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
[b]Portaro:[/b]

Descargate el código fuente (el archivo .tar.gz), lo descomprimes y lo abres con tu versión de gambas, y luego creas el paquete de instalación, y te deberia de funcionar.

[b]Tincho:
[[/b]quote]-¿Ambos pdf, el original y el modificado son de idéntico aspecto?[/quote]
No son iguales:  :cry:  :cry: 
- La letra en negrita ha quedado en formato normal (sin negrita)
- Las miniaturas de cada página del pdf han desperecido (el el video se ve que el inicial tenia miniaturas, y el otro solo se ve el nº de páginas)

El tamaño del archivo original  es de 958,8 kB, y el tamaño del archivo final del reemplazado es de 35.2 kB

Saludos


-----------------------------------
tincho
Miercoles, 15 Abril 2020, 11:18

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
Julio:
[quote]Creo que no tienes instalado LibreOffice[/quote]
No es eso, ya que en mi sistema esta instalado Libreoffice, lo que [u]no[/u] esta instalado es el "entorno" java. Pero no pasa nada, me quedo con el método que sirve en algunos casos extremos.
De todas maneras el objetivo que persigo es operar directamente en el PDF, sin convertirlo.

Saludos


-----------------------------------
portaro
Jueves, 16 Abril 2020, 11:58

Re: Reemplazar Texto En Un PDF Usando .fodt
-----------------------------------
[quote user="jsbsan" post="47923"][b]Portaro:[/b]

Descargate el código fuente (el archivo .tar.gz), lo descomprimes y lo abres con tu versión de gambas, y luego creas el paquete de instalación, y te deberia de funcionar.

[b]Tincho:
[[/b]quote]-¿Ambos pdf, el original y el modificado son de idéntico aspecto?[/quote]
No son iguales:  :cry:  :cry: 
- La letra en negrita ha quedado en formato normal (sin negrita)
- Las miniaturas de cada página del pdf han desperecido (el el video se ve que el inicial tenia miniaturas, y el otro solo se ve el nº de páginas)

El tamaño del archivo original  es de 958,8 kB, y el tamaño del archivo final del reemplazado es de 35.2 kB

Saludos[/quote]

Gracias por el dato asi lo hare.


