2010-08-25 15 views
51

Hola, desde hace un tiempo, estoy buscando un visor de pdf para la línea de comandos.CLI pdf viewer for linux

Como me gusta trabajar sin X en Linux, y a menudo trabajo en una máquina remota, me gustaría tener una herramienta para leer archivos .dp. Hay bastantes programas gráficos realmente buenos (evince, okular, acroread, ...) para hacer el trabajo, así que pensé que debería haber al menos una herramienta decente en modo texto. ¡Pero ni siquiera sé de uno malo!

Actualmente, empiezo X solo para leer archivos PDF, o uso pdftohtml + lynx. Sin embargo, este último no produce un resultado muy bueno, y la mayoría de los documentos son ilegibles, especialmente si contienen una fórmula matemática.

Google está lleno de gente que dice que no es posible o que sugiere la versión de pdftohtml.

Me doy cuenta de que esto no es exactamente una pregunta de programación, pero actualmente estoy considerando comenzar un proyecto para implementar dicho programa, a menos que ya exista uno bueno.

Gracias por cualquier sugerencia.

+0

¿Cómo sería manejar archivos PDF que están construidos a partir de la fuente de la imagen (sin texto), que es muy común? –

+0

Algunos archivos PDF se convierten en texto incorrecto, ya sea solo formas o resultados de OCR que están ocultos sobre la imagen de origen solo para fines de selección. ¡Que nunca se puede convertir en un buen texto! ¿Cómo crees que debería manejarse? –

+0

@ 0xA3: bueno, EXISTEN bibliotecas capaces de representar gráficos en la consola: libcaca y aalib. Incluso es posible ver películas en arte ascii. Sin embargo, no he escuchado sobre el visor de pdf así. Además, es posible representar imágenes en framebuffer usando svgalib. Sin embargo, no he oído hablar de CLI pdf viewer. Obviamente se puede hacer, pero no estoy seguro si alguien realmente se molestó en hacer eso. Ah, y con libcaca/aalib "graphic" pdf será apenas legible. – SigTerm

Respuesta

63

Hola creo que no es necesario escribir un programa para su propósito me refiero a la lectura de archivos PDF en modo consola como la orden "menos" ya lo haga por usted. Entonces úsalo y simplemente disfrútalo.

menos "el nombre del archivo PDF"

+0

¡Excelente primera respuesta! – bitmask

+7

Buen truco! En archlinux tuve que instalar 'lesspipe' para que esto funcione, otras distribuciones pueden tenerlo instalado por defecto. +1 – Giacomo

+3

no es un formato binario pdf?El texto producido por 'less' debe estar distorsionado – akhyar

0

Esto solo funcionaría si su documento PDF está estructurado, es decir, es un documento tagged PDF.

Esto es necesario para obtener el orden correcto de lectura de los objetos de texto en el documento.

Los documentos PDF etiquetados también le permiten volver a pasar el documento, aunque no conozco ninguna herramienta que lo haga con la salida de línea de comandos.

13

Ok, usted pidió saber incluso las "malas". Aquí hay dos (decidir sí mismo acerca de sus respectivas Crappiness):

Primero: Ghostscript'stxtwrite dispositivo de salida

gs \ 
    -dBATCH \ 
    -dNOPAUSE \ 
    -sDEVICE=txtwrite \ 
    -sOutputFile=- \ 
    /path/to/your/pdf 

Segundo: XPDF'spdftotext utilidad CLI (mejor que Ghostscript):

pdftotext \ 
    -f 13 \ 
    -l 17 \ 
    -layout \ 
    -opw supersecret \ 
    -upw secret \ 
    -eol unix \ 
    -nopgbrk \ 
    /path/to/your/pdf 
    - |less 

Esto mostrará el rango de página 13 (f rimera página) a 17 (l página AST), conservar el diseño de un archivo PDF llamado de doble protegido por contraseña (usando las contraseñas de usuario y propietario secreto y supersecretos), con la convención de Unix EOL, pero sin saltos de página insertando entre páginas PDF, canalizadas a través de menos ...

pdftotext -h muestra todas las opciones de línea de comandos disponibles.

Por supuesto, ambas herramientas solo funcionan para las partes de texto de los archivos PDF (si los tienen). Ah, y la fórmula matemática también no funciona demasiado bien ... ;-)


Editar: que tenía escrito mal el comando anterior (originalmente usando pdftops en lugar de pdftotext).

+0

Ninguno de ellos funciona para mi sistema, traté de ajustar los argumentos pero no mostraba el texto sino un ps formato de archivo, y como no soy una impresora ... – bitmask

+0

D'oh! Escribí mal el comando. Use 'pdftotext' en lugar de' pdftops' ... (Editaré la respuesta para reflejar esta corrección). –

+0

Del mismo modo, 'pdftohtml' hace una copia HTML, que se puede ver con un navegador web en modo texto, por ejemplo' w3m' o 'links'. – Abbafei

5
+0

¡Esto es asombroso! Aunque tienes que ser root, lo cual no entiendo, pero está bien. Sigue siendo increíble. – bitmask

+0

Verifique los permisos del dispositivo framebuffer: '$ ls -l/dev/fb0 crw-rw ---- 1 video raíz ...'. Es posible que deba estar en el grupo 'video' para tener acceso de usuario al framebuffer. – Giacomo

3

fbpdf es un visor de framebuffer pdf.

También hay un tenedor, jfbpdf, pero por el momento no puedo hacerlo funcionar.

4

Por cierto, yo siempre estoy en la misma situación, y utilizo mc (comandante de la medianoche) que maneja el texto del pdf muy bien ... Sólo ver el archivo (F3) en MC