Búsqueda de expresiones regulares en el lector de PDF

Búsqueda de expresiones regulares en el lector de PDF

Estoy usando zathura porque disfruto de su enfoque minimalista, pero también cambiaría a mupdf o cualquier otra cosa si esto solucionara mi problema.

Necesito resaltar cada palabra (en documentos PDF y epub) una por una de principio a fin porque puedo concentrarme mejor en el texto si tengo algún tipo de movimiento en él. Mi enfoque habría sido realizar una búsqueda de expresiones regulares que coincida con cada palabra, pero ni zathura ni mupdf admiten expresiones regulares en las búsquedas. ¿Hay alguna forma de hacer esto?

Intentaría bifurcar zathura pero, para ser honesto, no quiero perder esa cantidad de tiempo si hay otro visor de documentos mínimo compatible con Gnu/Linux que haga lo que necesito. Y si hay alguna forma de utilizar herramientas de terminal como  pdfgrep resaltar los resultados en zathura, eso también funcionaría.

Respuesta1

Selección de texto básico

De acuerdo con laPágina de Wikipedia de Zathura:

Zathura puede buscar texto y copiarlo a la selección X principal

Esto implica que la capacidad de seleccionar texto mientras lees está incorporada, aunque probablemente requiera el mouse (será difícil encontrar una solución para la selección controlada por el teclado).

¿Qué tan minimalista necesitas? yo sueloAtril, una horquilla ligeramente más ligera deMostrar(el visor de documentos de GNOME). Atril se hizo como parte delCompañero de escritorio(una continuación de GNOME 2). Es bastante ligero, aunque todavía tiene una dependencia GTK+.

Otra opción esxpdfsolicitud. Ver tambiénLista de Wikipedia de software PDF § Linux y Unix.

expresión regular

La única implementación de búsqueda de expresiones regulares (utilizable) que conozco, aparte de las herramientas de línea de comandos comopdfgrep, es en realidad su navegador web. Esto no es tan útil, pero aquí hay una solución en Firefox: abra un PDF en Firefox y abra la consola Javascript de herramientas de desarrollador (F12 o Ctrl+Shift+K). Ejecute estos comandos:

» pdf = document.getElementById("viewer").innerText.replace(/[ \t]+/g, " ");
» function grep(what, context=100) { return pdf.match(RegExp(`[\\s\\S]{0,${context}}${what}[\\s\\S]{0,${context}}`), "img"); }
» grep("put your regex here")
» grep("get more context", 300)

Tenga en cuenta que tendrá que escapar de las barras invertidas. El grepcomando tiene un segundo argumento opcional, la cantidad de caracteres de contexto que se proporcionarán en cada lado (predeterminado = 100).

Chrome y otros navegadores con visores de PDF integrados deberían ser bastante similares, pero tendrás que averiguar qué objeto HTML contiene el contenido del PDF real (es el id="viewer"elemento de Firefox, no estoy seguro de los demás; en el peor de los casos, solo utilizar document.bodyen lugar de document.getElementById("viewer"). Puede hacer coincidir elementos en la tabla de contenido).

Respuesta2

Si no me equivoco, Adobe Acrobat Readerse llama una función read out loudque selecciona cada palabra de principio a fin.

información relacionada