Ich erzeuge ein PDF dynamisch. Wie kann ich die Anzahl der Seiten in der PDF mit einem Shell-Skript überprüfen?Wie schreibe ich ein Shell-Skript, um die Anzahl der Seiten in PDF zu finden?
Antwort
ohne extra Paket:
foo=$(strings < pdffile.pdf | sed -n 's|.*/Count -\{0,1\}\([0-9]\{1,\}\).*|\1|p' | sort -rn | head -n 1)
Mit pdfinfo:
foo=$(pdfinfo pdffile.pdf | grep Pages | awk '{print $2}')
Mit pdftk:
foo=$(pdftk pdffile.pdf dump_data|grep NumberOfPages| awk '{print $2}')
+1 auf einem Mac der letzte Weg, mit pdftk, arbeitete sofort – gg349
Ich fand, dass die Shell-Methode ist nicht immer zuverlässig. Ich habe PDF-Dateien mit nur einer Seite mit mehreren/Zähle sie mit unterschiedlichen Zahlen.Ich schlage vor, eine andere zwei Methoden zu verwenden. – Crami
@Crami danke für die Info! Ist es möglich, dass Sie mindestens eine dieser PDFs teilen? –
Die imagemagick-Bibliothek stellt ein Tool namens identity zur Verfügung, das Ihnen in Verbindung mit dem Zählen der Ausgabezeilen das bringt, wonach Sie suchen ... imagemagick ist eine einfache Installation auf osx mit brew.
ist hier einen funktionellen Bash-Skript, das es auf ein Shell-Variable erfaßt und gibt sie zurück auf den Bildschirm ...
#/bin/bash
pdfFile=$1
echo "Processing $pdfFile"
numberOfPages=$(/usr/local/bin/identify "$pdfFile" 2>/dev/null | wc -l | tr -d ' ')
#Identify gets info for each page, dump stderr to dev null
#count the lines of output
#trim the whitespace from the wc -l outout
echo "The number of pages is: $numberOfPages"
Und die Ausgabe, die es läuft ...
$ ./countPages.sh aSampleFile.pdf
Processing aSampleFile.pdf
The number of pages is: 2
$
BTW: Sie sollten '$()' anstelle von Backticks '\' \ '' sehen [BashFAQ/082] ( –
) kühlen, aktualisierten Skript wie vorgeschlagen. – np0x
gegraben nur ein altes Skript aus (in KSH) gefunden:
#!/usr/bin/env ksh
# Usage: pdfcount.sh file.pdf
#
# Optimally, this would be a mere:
# pdfinfo file.pdf | grep Pages | sed 's/[^0-9]*//'
[[ "$#" != "1" ]] && {
printf "ERROR: No file specified\n"
exit 1
}
numpages=0
while read line; do
num=${line/*([[:print:]])+(Count)?(-)+({1,4}(\d))*([[:print:]])/\4}
((num > numpages)) && numpages=$num
done < <(strings "[email protected]" | grep "/Count")
print $numpages
Das pdftotext
Dienstprogramm wandelt eine PDF-Datei in Textformat Einfügen von Seitenumbrüchen zwischen die Seiten. (Aka: form-feed Zeichen $'\f'
):
NAME
pdftotext - Portable Document Format (PDF) to text converter.
SYNOPSIS
pdftotext [options] [PDF-file [text-file]]
DESCRIPTION
Pdftotext converts Portable Document Format (PDF) files to plain text.
Pdftotext reads the PDF file, PDF-file, and writes a text file, text-file. If text-file is
not specified, pdftotext converts file.pdf to file.txt. If text-file is ´-', the text is
sent to stdout.
Es gibt viele Kombinationen Ihr Problem zu lösen, wählen Sie eine von ihnen:
1) pdftotext + grep:
$ pdftotext file.pdf - | grep -c $'\f'
2) pdftotext + awk (v1):
$ pdftotext file.pdf - | awk 'BEGIN{n=0} {if(index($0,"\f")){n++}} END{print n}'
3) pdftotext + awk (v2):
$ pdftotext sample.pdf - | awk 'BEGIN{ RS="\f" } END{ print NR }'
4) pdftotext + awk (v3):
$ pdftotext sample.pdf - | awk -v RS="\f" 'END{ print NR }'
hoffe, es hilft!
- 1. Anzahl der Seiten in PDF - Mac
- 2. Anzahl der Seiten in einer PDF-Datei
- 3. Bestimmen Sie die Anzahl der Seiten in einer PDF-Datei
- 4. Wie kann ich die Anzahl der Seiten in einer PDF-Datei in Perl abrufen?
- 5. Wie schreibe ich einen Algorithmus, um die Gesamtzahl der Muster der Summe zweier Zahlen zu finden?
- 6. Wie Anzahl der Elemente zu finden, die
- 7. Wie schreibe ich ein Programm, um die Fliesen zu finden, die vollständig eingeschlossen sind?
- 8. Wie entwerfe ich einen Algorithmus, um die optimale Lösung für die Anzahl der Änderungen zu finden?
- 9. Wie schreibe ich ein QTreeWidgetItem um
- 10. Wie schreibe ich eine SQL-Abfrage, um ein Wort in einem Para zu finden?
- 11. Wie erhalte ich die Anzahl der Seiten in Google Text & Tabellen über Google Script?
- 12. Schreibe PDF aus Binär in der Datenbank
- 13. Wie schreibe ich einen PDF-Editor?
- 14. Wie bekomme ich die Gesamtzahl der Seiten in MPDF?
- 15. Wie schreibe ich eine SQL-Abfrage, um die Anzahl der Spieler in jedem Team in jedem Land zu bekommen?
- 16. Wie kann ich mit C# die Anzahl der Farbseiten in einer PDF-Datei ermitteln?
- 17. HTML-Link zu bestimmten Seiten in PDF
- 18. Schwierigkeiten, die Anzahl der Seiten zu vergleichen, um den Formtyp zu bestimmen
- 19. Wie schreibe ich Inhalt in pdf benutze iText?
- 20. Wie bekomme ich ein Win32-Programm, um die Dateigröße zu aktualisieren, während ich noch Dateien schreibe?
- 21. Asynchrone Shellskript in Cocoa-Applescript?
- 22. Wie leite ich 404 zu index.html um und schreibe die URL zur URL der Homepage um?
- 23. Anzahl der Seiten mit ReportLab anzeigen
- 24. Der effizienteste Weg, um die Anzahl der Übereinstimmungen zu finden, die ein String gegenüber einem Array von Wörtern hat?
- 25. Effiziente Methode zum Zählen der Anzahl der zu druckenden Seiten?
- 26. So teilen Sie ein PDF-Dokument vertikal und zeigen die Seiten in der Reihenfolge an
- 27. Wie kann ich die Anzahl der zu druckenden Seiten mit Javascript steuern?
- 28. Wie schreibe ich ein Filterprogramm in C?
- 29. Begrenzen Sie die Anzahl der Seiten in will_paginate
- 30. Java-Programm, um die Anzahl der Buchstaben jedes Wortes in einem Satz zu finden
Nur eingebaute Shell-Befehle verwenden? Oder "erlauben" Sie externe Tools wie z. pdftk oder pdfinfo? –
ich bin ok, aber ich brauche Seitenzahl in einer Variablen (Shell-Skript), so dass ich diesen Parameter an eine andere Funktion übergeben kann. – Manish
Diese Frage könnte nützlich sein: (http://stackoverflow.com/questions/36655478/bash-routine-to-return-the-page-number-of-a-iven-line-number-from-text-file) – Lacobus