8 votos

¿Comando de shell para contar las páginas de un PDF (que no sea pdftk)?

He estado usando esto para obtener un conteo de páginas de PDFs en shell scripts en OS X:

pdftk "$i" dump_data | grep NumberOfPages | awk '{print $2}' | tr -dc '[0-9]'

(donde $i es el nombre del archivo PDF)

Sin embargo, hay veces que eso no parece funcionar, así que me gustaría encontrar otra forma de hacerlo.

7voto

Michael Zhou Puntos 167

Otro más exiftool solución:

cd /path/to/pdf/directory
exiftool -T -filename -PageCount -s3 -ext pdf .

0 votos

Este es muy bueno en mi opinión. (1) es simple (2) produce una salida limpia: nombre del archivo [espacios] número de páginas (3) puede procesar todos los archivos pdf en un dir incluso si hay otros archivos (4) probablemente funcionará en el ordenador con diferentes locales (5) es portátil a otros sistemas (usándolo en Linux).

0 votos

¡Gran solución! Ahora mismo estoy usando esto para contar páginas en miles de archivos de forma recursiva y canalizar la salida a un archivo. El comando es entonces así: exiftool -T -r -filename -PageCount -s3 -ext pdf . > pages.txt

6voto

jordanmerrick Puntos 31

Debería poder utilizar mdls para ver los atributos de los metadatos de un PDF:

mdls -n kMDItemNumberOfPages "$i" | cut -c24-

0 votos

Nota: Esta solución sólo funciona si el archivo de destino reside en un volumen/ubicación que está siendo indexado. Personalmente, tengo algunas ubicaciones excluidas, así que para mí esto no funcionaría en algunos casos. Dicho esto, es una forma mejor que tener que canalizar tantas veces como se muestra en el OP. Sin embargo, ¡vale la pena un +1! :)

1 votos

Aún más fácil: mdls -raw -name kMDItemNumberOfPages No sabía que había un atributo para esto. Todos mis archivos están en dispositivos HFS+ indexados, así que funcionará bien.

6voto

dpat Puntos 56

Puede utilizar qpdf utilidad de línea de comandos para contar el número de páginas de un documento PDF. qpdf se puede instalar a través de Homebrew mediante la ejecución del siguiente comando:

brew install qpdf

Una vez instalado, para contar el número de páginas ejecutadas:

qpdf --show-npages file.pdf

1voto

user3439894 Puntos 5883

Ya sea que el archivo esté indexado o no, esto funciona, sin embargo, si el archivo de destino no reside en un volumen/ubicación que está siendo indexado, entonces aquí hay una alternativa a la excelente solución presentada por jordanmerrick.

Acabo de probar esto usando exiftool y si es sólo el recuento de páginas que desea como un número, entonces esto funciona:

exiftool "$i" | awk -F": " '/Page Count/{print $2}'

0voto

B H Puntos 121

Mdls tampoco me ha funcionado. Hice esto en un Mac, pero supongo que será lo mismo en cualquier shell bash o similar. Con el Mac tengo homebrew ya instalado así que simplemente escribí el comando "homebrew install exiftool" primero.

Aquí está el script que ejecuté, puedes configurarlo para tus propósitos. Tenía una carpeta entera de archivos PDF y quería el número de páginas de cada uno de ellos, así que hice que mirara los archivos e imprimiera el nombre del archivo y la página con un , en medio

#!/bin/sh

FILES=/path/to/files/*
for f in $FILES
do
    fn=$(basename "$f")
    printf "$fn"
    pg=$(exiftool "$f" | grep 'Page Count' | cut -c35-)
    printf ",$pg\n"
done

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X