35 votes

Mac OS X : Comment fusionner des fichiers pdf dans un répertoire en fonction de leurs noms de fichiers

Je veux fusionner plusieurs centaines de fichiers PDF dans un répertoire. automatiquement en fonction de leur nom de fichier.

Par exemple

Les dossiers 1000.1.pdf 1000.2.pdf 1000.3.pdf 1000.x.pdf devrait être fusionné avec 1000.pdf

y

2000.abc.pdf 2000.def.pdf 2000.ghi.pdf 2000.jkl.pdf 2000.5.pdf sur 2000.pdf .

Je ne veux pas utiliser de solutions basées sur Preview/Automator (si elles sont disponibles) parce que, par rapport à des logiciels tiers comme Adobe Acrobat ou PDFpen, la fusion de fichiers pdf entraîne souvent (en fonction des documents sources) une augmentation significative de la taille du fichier (voir par ex. Pourquoi la taille du fichier PDF augmente-t-elle lors de l'enregistrement dans Aperçu ? )

Avez-vous des recommandations ? Merci !

56voto

akuhn Points 1116

Il y a un script Python caché dans Automator.app qui réunit les fichiers .PDF

/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py --help
Usage: join [--output <file>] [--shuffle] [--verbose]

Exemple d'utilisation :

/System/Library/Automator/Combine\ PDF\ Pages.action/Contents/Resources/join.py --output all.pdf *.pdf

27voto

D.W. Points 3678

Essayez pdftk . Il s'agit d'un logiciel en ligne de commande qui peut joindre des fichiers PDF (et faire beaucoup d'autres choses aussi, mais ce n'est pas pertinent ici). Vous pouvez le télécharger de la page web officielle de pdftk .

Exemple de syntaxe :

pdftk old1.pdf old2.pdf old3.pdf cat output new.pdf

créera le fichier new.pdf qui contient la concaténation des fichiers old1.pdf , old2.pdf , old3.pdf .

Pour résoudre votre problème, avec vos exemples de noms de fichiers :

pdftk 1000.*.pdf cat 1000.pdf
pdftk 2000.*.pdf cat 2000.pdf

et ainsi de suite. Vous pouvez utiliser des scripts shell pour rendre cela complètement automatique si vous le souhaitez (mais vous devrez passer un peu de temps par vous-même pour apprendre à écrire des scripts).


En supposant que tous les fichiers sont nommés 1000.x, 2000.x etc. un script shell pourrait ressembler à ceci

#!/bin/bash

for n in {1..9}; do
    if [[ -r ${n}000.1.pdf ]]; then
        rm -f ${n}000.pdf
        pdftk ${n}000.*.pdf cat ${n}000.pdf && mv ${n}000.*.pdf ~/.Trash/
    fi
done

12voto

Flimm Points 1876

Vous pouvez utiliser pdfunite distribué avec poppler . Vous pouvez installer poppler avec Homebrew :

brew install poppler

Et maintenant, utilisez-le :

pdfunite input1.pdf input2.pdf input3.pdf output.pdf

poppler est également accompagné de ces autres commandes : pdfdetach , pdffonts , pdfimages , pdfinfo , pdfseparate , pdftocairo , pdftohtml , pdftoppm , pdftops , pdftotext en plus de pdfunite .

0voto

antoine Points 187

pdftk ne fonctionne plus sur El Capitan ! (OS X 10.10)

Une alternative est pagemaster de PDFTron. La syntaxe serait la suivante :

pagemaster -m *.pdf -o output.pdf

Elle ne présente pas le problème d'augmentation de la taille des fichiers de la solution Automator ci-dessus, car elle utilise une bibliothèque PDF personnalisée.

Remarque : il ne s'agit pas d'un outil gratuit. La version de démonstration ajoute un filigrane fin sur chaque page.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X