Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Analizar Archivos PDF
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Analizar Archivos PDF 
 
Hola a todos.
Estoy haciendo un programa para pasar pdf a epub. Actualmente trato cada página del pdf como imagen y le aplico un OCR con tesseract.
Funciona mas o menos bien, pero existen los casos, bastantes casos la verdad, en los que los pdf son texto embebido junto con imágenes y no una imagen "escaneada". Es en este tipo de archivos que me interesaría extraer el texo del pdf directamente.
Algún consejo?ok, encontre esta utilidad que es la que voy a usar.
https://stackoverflow.com/questions...to-its-location

Pero me gustarias saber de antemano si el pdf es de imagen ,ecaneado digamos, o de texto embebido.
¿Alguien sabe como "ver" esto en un pdf desde un script bash o gambas etc?

Saludos.
 



 
última edición por tincho el Martes, 31 Julio 2018, 17:49; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
tincho escribió:  
.... texto embebido junto con imágenes...

...es decir texto "fundido" con el pdf ?
O que ?
 



 
última edición por vuott el Martes, 31 Julio 2018, 18:08; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
Puedes extraer el texto con la utilidad pdftotext de las poppler utilities (en el repositorio de Ubuntu vienen), más o menos con

pdftotext --layout --nopgbrk fichero.pdf fichero.txt

y compara con el original.

Si tu original contiene mezcladas páginas escaneadas con páginas mixtas... pues no sé, el tema se complica.
 




===================
No podemos regresar
 
última edición por shordi el Martes, 31 Julio 2018, 19:10; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
Tincho, que tipo de pdf son los que quieres convertir a epub, libros estándares de mercado (formatos 12x17, 14x20, 15x22) libros de formato académico (17x24, 18x23) o revistas de formato europeo (20x28, 23x23, 24x30), estos formatos no son todos, hay muchos más.

Te imaginaras que no da lo mismo cualquier conversión, ya que además de la forma en como fue generado ese pdf (desde que programa), también está el tema de como fue editado, quiero decir, no es lo mismo un pdf en formato 15x22 (por ejemplo) desde word que desde InDesing o desde LaTeX, el header del archivo pdf es diferente y el tratamiento de las etiquetas internas también lo es.

Por otro lado depende de que codificación fue utilizada: latin1, utf8, utf16 o utf32, esto está directamente relacionado con los idiomas dentro del libro.

Todo lo anterior va a influir en gran parte sobre el nivel de complicación tiene dicha conversión a texto, y no importa con que aplicación o técnica lo hagas.

En mi experiencia las conversiones de libros en formato pdf (donde no tengo chance de obtener al texto original) para el paso a epub uso las sugerencias de las bibliotecas de KOMA (pero no uso KOMA, solo me quedo con sus ideas), esto es, mantener el formato pdf y llevarlo a tamaño A5 con margenes de 12pt (4,2mm) sin pérdida de escala tipográfica.

Si el pdf original fue preparado para imprenta (esto es en alta definición) bajarlo a 144dpi, esta baja de dpi solo afecta a las imágenes ya que las tipografías están embebidas en formato binario (y la resolución está asociada al dispositivo), cuando no son remplazadas por el lector (caso Kindle si además haces la conversión a mobi).

Aún así ¿es posible hacer lo que quieres?, sí. pero la relación inconvenientes / tiempo de trabajo / resultado, llevan más para perder que para ganar.

Puedes hacer este pequeño ejercicio, abre un pdf con 3 editores de pdf (no visores, editores) y verás que tienen un tratamiento diferente dentro de la edición para las líneas y los párrafos. La explicación a esto radica en que en el lenguaje PostScript existen diferentes formas de escribir código para obtener lo mismo (visualmente hablando), esto va desde usar funciones directas de bajo nivel hasta llegar al uso de diccionarios y/o pilas, por decir algunas.

Aún así, si quieres seguir investigando, te sugiero que vayas por el lado de PANDOC (https://pandoc.org/) una vez que tengas el texto limpio es una de las formas más rápidas y prolijas de llegar el apub, yo lo uso bastante para mis conversiones word  --> LaTeX, donde funciona al 100% de lo que word permite interpretar   pero me alcanza para terminar el libro en LaTeX.

Respecto de las imágenes que en realidad son texto en formato de imagen, no hay nada que se pueda hacer, más que volver a tipearlo.

Sls
 



 
última edición por imagomundi el Martes, 31 Julio 2018, 20:44; editado 1 vez 
imagomundi - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
Me hice unos minutos para hacer una prueba de conversión desde pdf a txt y a doc, las herramientas que utilicé son MasterPDF (versión gratuita) y Acrobat Profesional 9 (por la versión paga que suso, verás que hace rato que deje de pagar soft privativo   ).

La conversión hecha por MasterPDF a txt es 100% limpia, repito 100%, pero se pierde toda la estructura.

Ventajas: 0 (cero) error tipográfico en el resultado por posible mala interpretación del texto
Desventaja: se pierde toda la estructura tipográfica (me refiero al diseño tipográfico del título, secciones, etc.)

La conversión hecha por Acrobat Profesional a doc 97 es HORRIBLE, llena de basura, con las etiquetas erróneas, etc.
La conversión hecha a txt es igual que con MasterPDF, 100% limpia

Una posible salida es:
MasterPDF para pasar a txt
Pandoc para pasar txt a epub

En el medio no se puede evitar el trabajo de edición.

MaserPDF (https://code-industry.net/masterpdfeditor/)

Pero me gustarias saber de antemano si el pdf es de imagen ,ecaneado digamos, o de texto embebido.
¿Alguien sabe como "ver" esto en un pdf desde un script bash o gambas etc?


Al hacer la conversión se exportan todas las imágenes contenidas en el pdf, así ya sabrías de antemano que es imagen y que es texto en el susodicho pdf

Sls
 



 
última edición por imagomundi el Martes, 31 Julio 2018, 21:46; editado 3 veces 
imagomundi - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
Bueno repasando un poco.
Vuott: Lo que me interesa saber es si cad apagina del PDF es un scan (mapa de bits) o texto (cadena de caracters)
Shordi: Voy a usar esa utilidad pdftotext.
Alberto: De momento el tema formatos no esta entre mis prioridades ya que lo que busco es extraer un texto limpio para crear un html y luego con este contruir el epub sin pandoc, lo hare con código gambas.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
tincho escribió:  
Vuott: Lo que me interesa saber es si cad apagina del PDF es un scan (mapa de bits) o texto (cadena de caracters)


De todas formas para extraer el texto de un archivo PDF, tú puedes usar los recursos externos de la libreria "libpoppler-glib".

Ad exemplum:

Library "libpoppler-glib"

Private poppler_error As String[] = [Null, "INVALID", "ENCRYPTED", "OPEN_FILE", "BAD_CATALOG", "DAMAGED"]

' popplerDocument *poppler_document_new_from_file (const char *uri, const char *password, GError **error)
' Creates a new PopplerDocument.
Private Extern poppler_document_new_from_file(uri As String, password As String, GError As Pointer) As Pointer

' PopplerPage * poppler_document_get_page (PopplerDocument *document, int index)
' Returns the PopplerPage indexed at index.
Private Extern poppler_document_get_page(document As Pointer, index As Integer) As Pointer

' char * poppler_page_get_text (PopplerPage *page)
' Retrieves the text of page.
Private Extern poppler_page_get_text(page As Pointer) As Pointer

' void g_object_unref (gpointer object)
' Decreases the reference count of object.
Private Extern g_object_unref(gobject As Pointer)


Public Sub Main()

  Dim ruta As String
  Dim doc, pag, p As Pointer

    ruta = "/ruta/del/archivo.pdf"

    doc = poppler_document_new_from_file("file://" & ruta, Null, VarPtr(p))
    If doc = 0 Then Error.Raise("Error: " & poppler_error[String@(p)])

    pag = poppler_document_get_page(doc, 0)
    If pag = 0 Then Error.Raise("Error !")
    
    p = poppler_page_get_text(pag)
    If p = 0 Then Error.Raise("Error !")
    
    Print String@(p)

    g_object_unref(pag)
    g_object_unref(doc)

End

 



 
última edición por vuott el Miercoles, 01 Agosto 2018, 00:58; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
Bueno gracias a todos.
Estoy usando la utilidad pdftotext que me daba buenos resultados hasta que me tope con PDF de doble pagina por hoja.
Según la documentación de pdftotext este permite (o así lo entendí) tomar solo un fragmento de la hoja diciendo indicando un desplazamiento y un tamaño de la caja de recorte, pero no funciona de ninguna manera.
El comando que uso es:
pdftotext -layout -f 1 -l 1 -x 396 -W 396 documento.pdf extraccion.txt
Para extraer la pagina 1 lateral derecho
pdftotext -layout -f 1 -l 1 -W 396 documento.pdf extraccion.txt
Para extraer la pagina 1 lateral izquierdo

Estoy usando este PDF

¿Alguna idea?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
No creo que el tema de coordenadas ese esté pensado para texto. La ayuda habla de píxels, supongo que es para imágenes o vaya usted a saber cómo se usa.

Puedes intentar dejarlo tal cual con el -layout y trabajarlo después en gambas... pero veo complicadísimo el hacer un sistema que funcione con cualquier archivo (anchos de columna distintos, páginas mezcladas de una o dos columnas, etc. etc.)

Ya nos cuentas
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Analizar Archivos PDF 
 
Tal vez un rodeo a la solución sea crear un pdf intermedio donde cada sheet sea de una pagina.

https://unix.stackexchange.com/ques...it-pages-in-pdf

Atención en:

mutool poster -y 2 input.pdf output.pdf

Saludos.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
9.00 9 9 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Analizar La Información Contenida En Un A... tincho Aplicaciones/Fragmentos de Código 1 Viernes, 10 Noviembre 2017, 20:55 Ver último mensaje
shordi
No hay nuevos mensajes Analizar El Valor RMS, El Pico Y El Decay ... vuott Aplicaciones/Fragmentos de Código 1 Domingo, 27 Agosto 2017, 10:24 Ver último mensaje
Shell
No hay nuevos mensajes Archivos TXT En Gambas jhonnshark General 1 Jueves, 27 Octobre 2011, 07:35 Ver último mensaje
ivanovichenco
No hay nuevos mensajes Encriptador De Archivos vuott Aplicaciones/Fragmentos de Código 1 Sabado, 01 Febrero 2014, 18:38 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario