Automatisches Entfernen weißer Ränder aus PDFs, keine OCR, Befehlszeile

(eine ähnliche Frage existiert, ist explizit für eine andere Plattform und erwähnt nicht, dass keine OCR benötigt wird)

Ich brauche ein Befehlszeilentool (oder einen PDF-Viewer, der dies als Anzeigeoption unterstützt), das den weißen Rand einer PDF-Datei entfernen kann. Keine OCR oder ähnliches, nur perfekt weiße Ränder. Die eingegebenen PDF-Dateien sind Vektorgrafiken, dh weiß ist immer perfekt weiß. Idealerweise wären die Ausgabedateien auch Vektorgrafiken/PDF, um keinen Speicherplatz zu verschwenden und ich kann immer noch zoomen.

Es muss ein Befehlszeilentool sein, das mindestens Linux unterstützt.

In einer ähnlichen Frage ist dies eine Antwort für Imagemagick:

Von der Formatseite :

PDF - RW - Portable Document Format: Zum Lesen ist [Ghostscript][4] erforderlich. Standardmäßig legt ImageMagick die Seitengröße auf die MediaBox fest. Einige PDF-Dateien haben jedoch eine CropBox oder TrimBox, die kleiner als die MediaBox ist und möglicherweise Leerzeichen, Registrierungs- oder Schnittmarken außerhalb der CropBox oder TrimBox enthält. Um ImageMagick zu zwingen, die CropBox oder TrimBox anstelle der MediaBox zu verwenden, verwenden Sie -define (z. B. -define pdf:use-cropbox=true oder -define pdf:use-trimbox=true). Verwenden Sie -density, um das Erscheinungsbild Ihres PDF-Renderings zu verbessern (z. B. -density 300x300). Verwenden Sie -alpha remove, um Transparenz zu entfernen. Um eine direkte Konvertierung von Postscript in PDF anzugeben, verwenden Sie -define Delegate:bimodel=true. Verwenden Sie -define pdf:fit-page=true, um auf die Seitengröße zu skalieren.

Nun, ich kann es auch nicht zum Laufen bringen

convert input.pdf -define pdf:use-trimbox=true output.png

noch der Befehl mit "cropbox" entfernt die Ränder einer Standard-LaTeX-generierten .pdf-Datei.

Begründung: Mein Anwendungsfall sind Dokumente/Bücher, die in LaTeX gesetzt sind. Nein, ich habe die Quelle nicht und es ist nicht praktikabel, sie zu bekommen. Der (große) weiße Rand ist schön und alles beim Drucken. Aber beim Arbeiten mit einer pdf-Datei auf einem 10" Netbook ist der Platz kostbar und das Zoomen über die Grenzen kann den Unterschied ausmachen, ob man Kleingedrucktes (in Formeln, Exponenten, Indizes etc.) gut oder kaum lesen kann (I kann auch nur die Hälfte des Bildschirms für das pdf verwenden, weil das meistens Uni-Aufgaben sind, wo ich gleichzeitig eine Übung und meine bisherige Lösung sehen oder etwas mit einem Lehrbuch vergleichen muss, solche Sachen).

Danke dir. Erfolgreich getestet, werde ein Skript schreiben, um dies für alle meine PDFs zu tun. Ich denke, ich beantworte dann meine Frage? Es sei denn, jemand anderes (Sie?) tut dies zuerst.

Antworten (2)

pdfcrop

Hast du dir pdfcrop angesehen?

Siehe: http://manpages.ubuntu.com/manpages/gutsy/man1/pdfcrop.1.html

Es wird hier ausführlicher beschrieben: https://askubuntu.com/questions/124692/command-line-tool-to-crop-pdf-files

Kropf

krop ist das, was ich gerne benutze: http://arminstraub.com/software/krop

Ich verwende die GUI, aber sie kann auch über die CLI ausgeführt werden - vielleicht suchen Sie danach:

:~$ krop -h
usage: krop [-h] [-v] [-o OUTPUT] [--rotate {0,90,180,270}]
            [--whichpages WHICHPAGES] [--initialpage INITIALPAGE] [--autotrim]
            [--selections {all,evenodd,individual}] [--no-kde] [--no-PyPDF2]
            [file]

krop: A tool to crop PDF files

Copyright (C) 2010-2015 Armin Straub, http://arminstraub.com

positional arguments:
  file                  PDF file to open

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -o OUTPUT, --output OUTPUT
                        where to save the cropped PDF
  --rotate {0,90,180,270}
                        how much to rotate the cropped pdf clockwise (default: 0)
  --whichpages WHICHPAGES
                        which pages (e.g. "1-5" or "1,3-") to include in cropped PDF (default: all)
  --initialpage INITIALPAGE
                        which page to open initially (default: 1)                                                                                                                                         
  --autotrim            create a selection for the entire initial page minus blank margins                                                                                                                
  --selections {all,evenodd,individual}                                                                                                                                                                   
                        to which pages should selections apply                                                                                                                                            
  --no-kde              do not use KDE libraries (default: use if available)                                                                                                                              
  --no-PyPDF2           do not use PyPDF2 instead of pyPdf (default: use PyPDF2 if available)  
Wie ich in meinem Kommentar geschrieben habe, habe ich tatsächlich erfolgreich pdfcrop verwendet, wie von Martin Schröder vorgeschlagen
Verdammt. Endlich pdfcrop für meine Dateien verwendet: Es entfernt das Inhaltsverzeichnis und In-PDF-Links. Ich denke, dann werde ich es mit Krop versuchen.
Ich habe auch gerade bemerkt, dass pdfcrop die Dateigröße um Faktoren zwischen 5 und 10 vergrößert. Das ist nicht wirklich ein praktisches Problem, habe nicht so viele PDFs, aber es ist wirklich unbefriedigend.
krop --autotrim test.pdf -o crop.pdf funktioniert nicht. Es beschneidet mehr als nur den Leerraum (und ich kann es nicht skripten, es öffnet sein Fenster, in dem ich auf eine Schaltfläche klicken muss, damit es funktioniert).

Haben Sie jemals Briss und K2pdfopt ( Referenz ) ausprobiert? Beide sind Open Source und ich glaube, dass sie die Verwendung der Befehlszeile unterstützen.

Bitte beschreiben Sie, was jeder von ihnen tut, und geben Sie einige Details an, warum Sie denken, dass sie eine Antwort sein könnten. Bitte formulieren Sie Ihre Antwort auch als Antwort und nicht als Frage um, dh "Sie können dies tun mit" und nicht "Haben Sie es schon einmal versucht?"