Comment combiner par lots des fichiers JPEG à partir de dossiers en fichiers PDF

18

J'ai environ 500 dossiers avec des images à l'intérieur. Existe-t-il un moyen de convertir cela par lots afin d'obtenir des fichiers .pdf contenant toutes les images à l'intérieur sous forme de pages?

ÉDITER:

Il devrait y avoir 500 PDF créés, chacun avec le nom du dossier contenant, et chacun contenant des images en tant que pages.

Ska
la source
3
quel OS? et voulez-vous un outil CLI ou GUI? Les fichiers sont-ils nommés de manière saine ou cohérente, et l'ordre est-il important?
Journeyman Geek
Mac OS X, cela peut être n'importe quelle sorte d'outil et je possède Acrobat Pro mais je ne trouve pas cette option. Les fichiers sont classés par ordre alphabétique et je souhaite conserver cet ordre. Merci
Ska

Réponses:

16

OS X dispose de plusieurs outils intégrés pour automatiser le traitement d'image et la création de PDF.

Ouvrez simplement Automator.app , créez une nouvelle application.

Automator.app

Modifiez-le comme indiqué ci-dessous, en faisant glisser les actions du volet gauche vers le volet droit.

La première étape

  • Obtenir le contenu du dossier avec l' option Répéter… active obtiendra tous vos fichiers, même depuis les sous-répertoires.

  • Le nouveau PDF à partir d'images créera un fichier PDF sur le bureau, chaque page comprenant une image.

Enregistrez l'application quelque part (par exemple sous / Applications ou sur votre bureau). Donnez-lui un nom correct, comme "Créer un PDF à partir d'Image.app". Ensuite, vous pouvez faire glisser vos dossiers sur son icône. Laissez le workflow faire le travail pour vous.


Ce qui précède crée un seul fichier PDF pour toutes les images. Si vous voulez en avoir un pour chaque dossier, ça va être plus compliqué.

Tout d'abord, vous avez besoin de l' action Distribuer les articles progressivement . Installez-le. Ensuite, ouvrez à nouveau Automator et créez un nouveau flux de travail ( pas une application).

Maintenant, pour plus de commodité, vous pouvez télécharger le workflow ici . En cas de rupture de ce lien, modifiez-le comme indiqué ci-dessous:

Capture d'écran du flux de travail

Ou, sous forme de texte:

  • Obtenir les éléments du Finder sélectionnés
  • Distribuer les articles de manière incrémentielle (celui que nous avons installé auparavant)
  • Définir la valeur de la variable pour se souvenir du dossier dans lequel nous nous trouvons
  • Obtenir le contenu du dossier , pour obtenir les images
  • Nouveau PDF à partir d'images , pour créer le PDF. Ici, prenez la variable dans le panneau "Variables" en bas et faites-la glisser vers le champ "Enregistrer la sortie dans…". Cela garantit que le PDF est créé dans le dossier auquel il appartient. Il n'y a pas de moyen facile de renommer le fichier autre que de définir un nom de fichier statique. Vous pouvez cependant ajouter une action Renommer les éléments du Finder pour la définir.
  • Boucle , pour commencer depuis le début et exécuter avec le dossier suivant. Vous pouvez désactiver la partie pour laquelle il demande une confirmation.

Enregistrez-le en tant que workflow, et maintenant, voici comment l'exécuter. Sélectionnez vos dossiers dans le Finder.

Capture d'écran du Finder

Ensuite, accédez à Automator.app et cliquez sur Exécuter dans le coin supérieur droit.


Avec 500 dossiers, cela peut prendre un certain temps. Surtout avec des images haute résolution, votre PDF peut devenir énorme. Mais vous pouvez d'abord l'essayer sur une sélection plus petite, puis laisser le workflow s'exécuter jusqu'à ce qu'il soit terminé.

slhck
la source
Incroyable, mais toutes les images sont maintenant dans un seul PDF. Est-il possible de créer un PDF séparé pour chaque dossier contenant? Je ne savais même pas tout ce que vous pouvez faire avec Automator, merci beaucoup!
Ska
@Ska Voir ma réponse mise à jour. J'espère que ça marche pour toi. C'est là que cela devient délicat dans Automator et où vous pensez plutôt à passer à AppleScript ou à un simple script Bash en combinaison avec AppleScript.
slhck
Ne vous inquiétez pas, je les renommerai plus tard avec le script bash. Cependant, ne serait-il pas possible de créer une application qui passerait la sortie de Get Folder Contents (nom du dossier) et en créerait une variable?
Ska
@Ska oui, c'est ainsi que vous définissez la variable, mais vous ne pouvez pas utiliser la variable dans le nom de sortie du PDF. Du moins pas de manière simple.
slhck
C'est un flux de travail impressionnant. Merci pour l'aide à ce sujet. J'ai passé la semaine dernière à déchiffrer les JPG de chaque numéro de National Geographic au début du temps et j'avais besoin d'un moyen de convertir les 250 000 pages en PDF afin de pouvoir les OCR et les rendre consultables. Vous venez de m'économiser une tonne de travail manuel. Une modification que j'ai dû apporter au script était de définir un délai d'expiration supérieur aux 0 minutes par défaut. Sinon, il n'a créé qu'un seul PDF. Je l'ai fait avec la boucle manuelle, mais c'est beaucoup trop d'implication dans un processus automatisé. Je lui ai également dit de les enregistrer dans un seul dossier afin que
22

Sous OS X

Avec Homebrew, il est facile d'installer ImageMagick:

brew install imagemagick

convert *.jpg output.pdf

et si le PDF résultant est un peu trop volumineux, vous pouvez essayer:

convert -quality 60 *.jpg output.pdf

Linux, Unix, Windows

Bien sûr, ImageMagick peut également être installé sur d'autres systèmes Unix, par exemple apt-get install imagemagicksur Debian et Ubuntu. Et même sur Windows via GNU / Cygwin ou Chocolately .

fifi finance
la source
3
Bien plus rapide que de gigoter avec Aperçu!
DK_
1
+1 Je pense que la comparaison entre cela et la réponse acceptée montre vraiment la puissance des outils de ligne de commande (et surtout imagemagick) dans ce genre de situation!
Bill Cheatham
1
Cela est également possible dans les fenêtres. Si vous utilisez chocolatey (gestionnaire de paquets pour Windows) choco install imagemagick.tool:, puis suivez les commandes "convertir" de @ KasperSouren.
Giscard Biamby
2

Sur presque tous les systèmes sur lesquels vous exécuteriez ceci, votre meilleure solution peut être ImageMagick . Disponible sur * nix, Mac et Windows, prend en charge à la fois le caractère générique (alias globbing de nom de fichier) et la spécification d'une liste (par exemple @ ImagesToProcess.txt) de fichiers d'entrée, certaines options avancées de spécification de fichier, une ligne de commande puissante, etc.

poteau de clôture
la source
Cela nécessiterait également GhostScript et moi de faire la programmation avec qui sait combien de gestion des dépendances. Je suppose qu'il pourrait y avoir un outil simple pour cela. Après tout, le cas d'utilisation est assez simple.
Ska
Cela ne devrait pas être si difficile - tant que ImageMagick et GhostScript sont installés et ImageMagick capable de trouver GS, vous pouvez simplement utiliser la ligne de commande IM qui simplifie le script. Cela suppose que le remplacement de nom de fichier traitera les fichiers dans le bon ordre, mais sinon, cela sera de toute façon plus complexe. Pour Windows, voici un guide pour les faire fonctionner ensemble: stackoverflow.com/questions/3243361/… . Pourtant, l'autre réponse est meilleure pour les Mac
fencepost
Merci pour les super conseils sur la messagerie instantanée, clôture. Vous apprenez quelque chose de nouveau tous les jours. Quant à la question d'origine, je vais d'abord essayer la solution du slhck.
Ska
De rien. Je n'ai pas réalisé que A) vous utilisiez un Mac et B) Le support Ghostscript sur Mac est apparemment beaucoup plus faible pour une raison quelconque - ou du moins il n'a pas suivi Windows et * nix.
fencepost