Pour le script, je dois obtenir les dimensions de la page d'un fichier PDF (en mm).
pdfinfo
il suffit de l'imprimer en 'pts', par exemple:
Page size: 624 x 312 pts
Que devrais-je utiliser?
Ou quelle unité est "pts" de toute façon - au cas où je veux les convertir ...
Réponses:
L'unité 'pts' utilisée par
pdfinfo
désigne un point PostScript. Un point PostScript est défini en termes de pouce et de résolution de 72 points par pouce:Le manuel to
gv
contient une liste des formats de papier courants spécifiés en points PostScript.la source
pdfinfo
me donne parfois le format de papier (du typePage size: 595.28 x 841.89 pts (A4)
) - je me demande si elle le fait pour une liste de formats de page qu’elle connaît?Pas le moyen le plus simple, mais étant donné
imagemagick
etunits
vous pouvez également utiliserpour trouver la taille de la page en pouces (cela peut donner plusieurs résultats si le PDF utilise des dimensions différentes), puis convertir les nombres de la manière suivante:
Ce qui signifie que 8,26 pouces sont 209,9 mm (j'ai utilisé un PDF A4 pour cela).
la source
identify
PDF sur OS XI, je ne reçois aucune sortie.identify
nécessite ImageMagickA rencontré le même problème et est venu à la solution suivante. Je ne suis pas entré dans la documentation sur la manière dont les fichiers pdf sont construits. Je viens de comparer deux fichiers pdf vides avec différentes tailles de page.
Il semble que les fichiers PDF contiennent toutes sortes d'attributs intégrés entre "<<" et ">>". J'ai trouvé que les informations de taille de page sont là en texte brut et peuvent être trouvées avec une simple recherche de regex.
Cela peut être vrai ou non pour tous les fichiers PDF, mais cela a fonctionné pour tout ce que je pouvais trouver à partir de sources différentes.
La partie pertinente peut ressembler à l’un de ces types pour une page de format A4:
Cela signifie [0 0 width height] alors voici ma solution boiteuse mais efficace pour extraire ceci:
Il suffit de remplacer test.pdf par votre fichier.
la source
J'ai utilisé maxchlepzigs answer pour calculer le mm directement:
$ pdfinfo test.pdf | grep "Page size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=0.3528 '{print $1*x}'
cela fonctionne aussi avec Alex Knaufs, mais identifier prend beaucoup plus de temps que pdfinfo et nécessite imagemagick, mais vous pouvez l’utiliser pour plusieurs fichiers (c-à-d. en les insérant dans un répertoire et en utilisant
*.pdf
):$ identify -verbose some.pdf | grep "Print size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=25.4 '{print $1*x}'
La deuxième
grep
commande obtient les deux valeurs de point / pouce. Je suis assez sûr que vous pouvez ignorer la regex grep et le faire directement avec awk mais je ne pouvais pas le comprendre.la source