Jak liczyć strony w wielu plikach PDF?

12

Właśnie otrzymałem podręcznik pdf składający się z około 20 oddzielnych plików pdf (według rozdziałów) o quasi-regularnych nazwach. Czy istnieje sposób zliczania stron w książce bez otwierania każdego pliku (lub przeglądania właściwości)?

[rozwiązaniem może być system Windows lub Ubuntu]

tak
źródło
Czy masz Adobe Acrobat?
wizlog
Czy chcesz liczbę stron dla każdego pliku PDF i / lub całej książki?
Franck Dernoncourt
@FranckDernoncourt - dzięki. Pytanie zostało zadane około 7 lat temu. Jeśli masz rozwiązanie któregoś ze wspomnianych wyżej sposobów, dlaczego po prostu nie dodasz tutaj odpowiedzi, aby przyszli użytkownicy badający ten problem mogli się odnieść?
ysap

Odpowiedzi:

19

Używanie pdfinfotego jest najlepsze, co mogłem wymyślić: Aby wydrukować liczbę stron na plik:

for i in *.pdf; do echo $i && pdfinfo "$i" | grep "^Pages:"; done

Aby wydrukować sumę wszystkich stron we wszystkich plikach:

for i in *.pdf; do pdfinfo "$i" | grep "^Pages:"; done | awk '{s+=$2} END {print s}'

W systemie Ubuntu pdfinfojest zawarty w pakiecie poppler-utils. Aby go zainstalować, użyj:

sudo apt-get install poppler-utils

W systemie Windows możesz użyć cygwin. pdfinfojest zawarty w pakiecie poppler.

Der Hochstapler
źródło
+1 pdfinfo jest dokładnie tym, czego szukałem. Potrzebuję go do zliczania stron w moim pakiecie emulacji drukowania dwustronnego.
Joe
Musiałem dodać flagę --text do polecenia grep, ponieważ z jakiegoś powodu pdfinfo zwrócił coś, co grep interpretował jako plik binarny. Więc grep --text „^ Strony:”, na wypadek, gdyby ktoś miał ten sam problem.
KIAaze
4

Wiem, że jest za późno, ale właśnie znalazłem o wiele lepsze i prostsze rozwiązanie.

Pobierz i zainstaluj z sourceforge „pdf split and merge”

Upuść na nim wszystkie pliki, a na ekranie zostanie wygenerowany raport podobny do arkusza kalkulacyjnego dotyczący liczby stron i informacji o każdej z nich.

Wybierz, skopiuj, wklej do programu Excel lub opencalc, masz.

użytkownik339697
źródło
4

Zrobiłem właśnie taką aplikację, napisaną w Javie, więc działa na wszystkich systemach operacyjnych. Sprawdź tutaj:

https://github.com/hamiltino/multiple-pdf-counter/releases

Najlepiej jest uruchomić aplikację z terminalu ( java -jar), aby upewnić się, że będzie działać poprawnie.

Umieść plik jar w katalogu, w którym chcesz uzyskać liczbę stron wszystkich plików pdf. Przejdzie on także przez podfoldery, nie musisz też umieszczać wszystkich plików pdf w miejscu, w którym znajduje się plik jar, ponieważ będzie przechodził przez podfoldery, w których umieszczasz plik plik jar. Dwukrotnie kliknij słoik, może zająć trochę czasu, jeśli jest dużo plików pdf, w końcu wyśle ​​plik txt w tym samym katalogu pliku słoik, i będzie miał w nim liczbę stron.

HashTables
źródło
Dobry pomysł. Dobrymi ulepszeniami byłyby: 1) otwarcie, które jest tylko w wierszu poleceń (bez interfejsu użytkownika), i 2) wyświetlenie rozmiaru strony każdego pliku, wraz z total
raider33
1

W programie Adobe Acrobat Pro przejdź do pliku > utwórz PDF > scal pliki w jeden plik PDF . Następnie dodaj pliki i wybierz żądane pliki. Kliknij Połącz i zobacz, ile stron jest w ostatecznym pliku PDF.

wizlog
źródło
Dzięki @wizlog - to naprawdę wymaga w pełni funkcjonalnego (i kosztownego) oprogramowania, prawda?
ysap
Właśnie zauważyłem twój komentarz do pytania. Nie, nie mam tego.
ysap
1

Cześć, nie wiem jak możesz to zrobić na Windowsie, ale na Linuksie powinno to działać

PDFS = `ls * .pdf`
licznik = 0
dla i w $ PDFS
robić
   ((counter + = `pdfinfo internship_report.pdf | sed -n 's | Pages: [^ 0-9] * \ ([0-9] * \). * | \ 1 | p'`))
Gotowe
licznik echa $

pozdrawiam Kenny

phschoen
źródło
Dzięki, Kenny. Może to działać, jeśli nazwa pliku skanuje pliki. Mimo to głosowano.
ysap
0

inne podejście z paralleli expr(powinno być nieco szybsze na maszynach wieloprocesorowych):

expr $( echo -n 0; parallel "pdfinfo {} |sed -n 's/Pages: */ + /p'" ::: *pdf|tr '\n' ' ')
Matteo Gamboz
źródło