2010-08-25 12 views
51

Hey, seit einiger Zeit suche ich nach einem PDF-Viewer für die Befehlszeile.CLI pdf viewer für linux

Da ich gerne ohne X unter Linux arbeite und oft auf einem Remote-Rechner arbeite, hätte ich gerne ein Tool zum Lesen von PDFs. Es gibt eine ganze Menge wirklich guter grafischer Programme (econce, okular, acroread, ...), um diese Aufgabe zu erledigen, also dachte ich, es sollte mindestens ein anständiges Textmodus-Werkzeug geben. Aber ich kenne nicht einmal einen beschissenen!

Derzeit starte ich entweder X nur um PDFs zu lesen, oder benutze pdftohtml + lynx. Letzteres erzeugt jedoch keine sehr gute Ausgabe, und die meisten Dokumente sind nur unlesbar, besonders wenn sie eine mathematische Formel enthalten.

Google ist voller Leute, die sagen, dass es entweder nicht möglich ist oder die pdftohtml-Version vorschlägt.

Ich weiß, das ist nicht gerade eine Programmierfrage, aber ich überlege gerade, ein Projekt zu starten, um ein solches Programm zu implementieren, es sei denn, es ist bereits ein gutes da draußen.

Vielen Dank für Anregungen.

+0

Wie wäre es, PDF-Dateien verarbeiten das sind aus Bildquelle (kein Text) gebaut, die Waaaayyy zu häufig ist? –

+0

Einige PDF-Dateien werden in einen fehlerhaften Text umgewandelt !, entweder nur Shapes oder OCR-Ausgabe, die nur für die Auswahl im Quellbild verborgen ist. Was niemals in einen guten Text umgewandelt werden kann! Wie sollte das deiner Meinung nach gehandhabt werden? –

+0

@ 0xA3: Nun, es gibt Bibliotheken, die Grafiken an die Konsole rendern können - libcaca und aalib. Es ist sogar möglich Filme in Ascii Kunst zu sehen. Habe aber noch nicht von pdf-Viewer gehört. Es ist auch möglich, Bilder mit svgalib in den Framebuffer zu rendern. Ich habe noch nichts über CLI PDF Viewer gehört. Natürlich kann es gemacht werden, aber ich bin mir nicht sicher, ob sich jemand wirklich darum gekümmert hat. Oh, und mit libcaca/aalib "Grafik" pdf wird kaum lesbar sein. – SigTerm

Antwort

63

Hallo, ich denke, dass sie Sie nicht über ein Programm für Ihre Zwecke schreiben muss ich meine Lektüre pdf-Datei im Konsolenmodus, weil „weniger“ Befehl bereits tun es. Also benutze es und genieße es einfach.

weniger "der Name der PDF-Datei"

+0

Tolle erste Antwort! – bitmask

+7

Ordentlicher Trick! Auf Archlinux musste ich 'lesspipe' installieren, damit dies funktioniert, andere Distributionen haben es standardmäßig installiert. +1 – Giacomo

+3

ist nicht ein binäres Format pdf?Der von 'less' erzeugte Text sollte entstellt werden. – akhyar

0

Dies würde nur funktionieren, wenn Ihr PDF-Dokument strukturiert ist, d. H. Es ist ein tagged PDF Dokument.

Dies ist erforderlich, um die korrekte Lesereihenfolge der Textobjekte im Dokument zu erhalten.

Mit Tags versehene PDF-Dokumente ermöglichen Ihnen auch, das Dokument neu zu fließen, obwohl mir kein Tool bekannt ist, das dies mit der Befehlszeilenausgabe erledigt.

13

Ok, du wolltest auch "beschissene" wissen. Hier sind zwei (entscheiden Sie sich über ihre jeweiligen crappiness):

Erstens: Ghostscript'stxtwrite Ausgabegerät

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

Zweitens: XPDF'spdftotext CLI-Dienstprogramm (besser als Ghostscript):

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

Dies zeigt den Seitenbereich 13 (f rste Seite) bis 17 (l ast Seite), erhalten das Layout einer zwei Passwort namens PDF-Datei geschützt (mit Benutzer und Besitzer Passwörter Geheimnis und supersecret), mit Unix EOL Konvention, aber ohne das Einfügen Seitenumbrüche zwischen PDF-Seiten, Pipe durch weniger ...

pdftotext -h zeigt alle verfügbaren Befehlszeilenoptionen an.

Natürlich funktionieren beide Werkzeuge nur für die Textteile von PDFs (wenn sie irgendwelche haben). Oh, und die mathematische Formel wird auch nicht allzu gut ... ;-)


Edit: Ich hatte falsch eingegeben das Kommando über (ursprünglich pdftops anstelle von pdftotext).

+0

Keine von ihnen funktioniert für mein System, ich habe versucht, die Argumente zu optimieren, aber es zeigte nicht den Text aber a ps formatierte Datei, und da ich kein Drucker bin ... – bitmask

+0

D'oh! Ich habe den Befehl falsch eingegeben. Verwenden Sie "pdftotext" anstelle von "pdftops" ... (Ich werde die Antwort bearbeiten, um diese Korrektur widerzuspiegeln). –

+0

Ähnlich erstellt 'pdftohtml' eine HTML-Kopie, die mit einem Textmodus-Webbrowser angezeigt werden kann, zum Beispiel' w3m' oder 'links'. – Abbafei

5
+0

Das ist großartig! Du musst zwar root sein, was ich nicht verstehe, aber okay. Immer noch toll. – bitmask

+0

Überprüfen Sie die Berechtigungen des Framebuffer-Geräts: '$ ls -l/dev/fb0 crw-rw ---- 1 Stammvideo ...'. Sie müssen möglicherweise in der 'video'-Gruppe sein, um Benutzerzugriff auf den Framebuffer zu haben. – Giacomo

3

fbpdf ist ein framebuffer pdf viewer.

Es gibt auch eine Gabel, jfbpdf, aber im Moment kann ich es nicht funktionieren.

4

By the way, im immer in der gleichen Situation, und ich verwende mc (Midnight Commander), die sehr gut Text pdf Griffe ... sehen Sie einfach die Datei (F3) in mc