Für die Skripterstellung muss ich die Seitengröße einer PDF-Datei (in mm) ermitteln.
pdfinfo
druckt es einfach in 'pts' aus, zB:
Page size: 624 x 312 pts
Was soll ich benutzen?
Oder welche Einheit ist "PTS" überhaupt - falls ich sie konvertieren möchte ...
Antworten:
Die von verwendete Einheit 'pts'
pdfinfo
bezeichnet einen PostScript-Punkt. Ein PostScript-Punkt wird in Zoll und einer Auflösung von 72 Punkten pro Zoll definiert:Das Handbuch zu
gv
enthält eine Liste gängiger Papierformate, die in PostScript-Punkten angegeben sind.quelle
pdfinfo
Gibt mir manchmal das Papierformat (wiePage size: 595.28 x 841.89 pts (A4)
) - ich frage mich, ob es das für eine Liste von Seitengrößen tut, über die es Bescheid weiß?Nicht der einfachste Weg, aber vorgegeben
imagemagick
undunits
man könnte ihn auch nutzenUm die Seitengröße in Zoll zu ermitteln (dies kann zu mehreren Ergebnissen führen, wenn die PDF-Datei unterschiedliche Abmessungen verwendet), und konvertieren Sie die Zahlen wie folgt:
Das bedeutet, dass 8,26 Zoll 209,9 mm sind (ich habe dafür ein A4-PDF verwendet).
quelle
identify
ein PDF unter OS X habe, bekomme ich keine Ausgabe.identify
erfordert aber ImageMagickKam über das gleiche Problem und kam zu der folgenden Lösung. Ich bin nicht auf die Dokumentation zum Aufbau von PDF-Dateien eingegangen. Ich habe nur zwei leere PDF-Dateien mit unterschiedlichen Seitengrößen verglichen.
Es sieht so aus, als hätten PDFs alle Arten von Attributen zwischen "<<" und ">>" eingebettet. Ich habe festgestellt, dass die Informationen zur Seitengröße im Klartext vorliegen und mit einer einfachen Regex-Suche gefunden werden können.
Dies mag auf alle PDFs zutreffen oder auch nicht, aber es funktionierte auf allem, was ich aus verschiedenen Quellen finden konnte.
Der relevante Teil kann für eine A4-Seite wie folgt aussehen:
Es bedeutet [0 0 width height] und hier ist meine super lahme, aber funktionierende Lösung, um dies zu extrahieren:
Ändern Sie einfach test.pdf in Ihre Datei.
quelle
Ich habe maxchlepzigs Antwort verwendet, um die mm direkt zu berechnen:
$ pdfinfo test.pdf | grep "Page size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=0.3528 '{print $1*x}'
Dies funktioniert auch mit Alex Knaufs Antwort, aber das Identifizieren dauert viel länger als pdfinfo und erfordert imagemagick. Der Vorteil ist jedoch, dass Sie dies für mehrere Dateien verwenden können (z. B. indem Sie in ein Verzeichnis schreiben und Folgendes verwenden
*.pdf
):$ identify -verbose some.pdf | grep "Print size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=25.4 '{print $1*x}'
Der zweite
grep
Befehl ruft die zwei Punkt- / Zollwerte ab. Ich bin mir ziemlich sicher, dass Sie den regulären Ausdruck grep überspringen und ihn direkt mit awk ausführen können, aber ich konnte es nicht herausfinden.quelle