Vous avez environ 500 PDF à parcourir et à extraire la première page de. Ils doivent ensuite passer par un processus de conversion qui prend beaucoup de temps, alors j'espérais essayer de gagner du temps en ayant un processus par lots pour extraire uniquement la première page des 500 fichiers PDF et la placer dans un nouveau pdf. J'ai fouillé Acrobat mais je ne trouve aucune méthode réelle pour le faire pour plusieurs fichiers. Est-ce que quelqu'un connaît d'autres programmes ou méthodes qui pourraient être atteints? Les logiciels libres et open source sont évidemment plus favorables :)
EDIT: J'ai en fait réussi à utiliser GhostScript pour extraire une seule page. Je regarde maintenant comment regrouper cela et prendre la liste des fichiers et les utiliser.
la source
Réponses:
Utilisation de pdftk ...
Sur mac et linux depuis la ligne de commande.
for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done
Sous Windows, vous pouvez créer un fichier de commandes. Ouvrez le Bloc-notes, collez-le à l'intérieur:
for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"
Vous devrez peut-être remplacer "pdftk.exe" par le chemin d'accès complet à pdftk, par exemple,
"C:\Program Files\pdftk\pdftk.exe
ou quoi que ce soit. (Je n'utilise pas Windows donc je ne sais pas.)Enregistrez-le avec une extension se terminant par .bat, déposez-le dans le dossier contenant les fichiers PDF et double-cliquez.
Vous pouvez faire la même chose avec Ghostscript, oui.
Voyons voir. Pour Mac et Linux (tous une ligne):
for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done
Je ne sais pas exactement quelle serait la commande correspondante pour un fichier de commandes Windows. Ma meilleure supposition (--Je n'ai pas de fenêtres donc je ne peux pas tester--):
for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"
Vérifiez que le chemin d'accès à votre exécutable de script fantôme est correct, et bien, je n'ai pas testé cela depuis que je n'utilise pas Windows.
EDIT: OK, je viens de réaliser que vous ne voulez probablement pas 500 PDF d'une page, mais un seul PDF qui les combine tous. Exécutez simplement ce qui précède, et cela vous laissera 500 fichiers PDF d'une page. Pour les combiner à l'aide de pdftk ... sur mac et linux:
pdftk *-page1.pdf cat output combined.pdf
Je pense que c'est probablement la même chose sous Windows, sauf peut-être avoir besoin du chemin complet vers pdftk, comme ci-dessus. Vous pouvez simplement ajouter cette ligne après la ligne ci-dessus dans votre fichier de commandes.
Avec Ghostscript ... sur mac et linux:
gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf
Et c'est probablement la même chose sous Windows, sauf en remplaçant "gs" au début par le chemin complet vers gswin32c.exe, comme ci-dessus.
Il peut y avoir un moyen de ghostscript pour faire les deux en une seule étape, mais je suis trop paresseux pour le comprendre en ce moment.
Si l'ordre dans lequel les combiner est important, nous aurons besoin de plus d'informations.
la source
Je devais juste le faire aujourd'hui sous Linux. Cela devrait également fonctionner pour Mac. Exécutez la commande suivante depuis votre terminal.
lpr soumet des travaux à l'imprimante.
Notez l'utilisation des caractères * dans la commande. Cela exécuterait la commande pour tous vos fichiers PDF dans le répertoire.
la source
Je pense que vous pourriez utiliser une imprimante virtuelle pdf, comme pdf-forge.
Vous "imprimez" simplement la première page, je sur un Mac maintenant et je ne peux pas l'essayer mais je suis sûr que vous pouvez le faire plus d'une à la fois.
Bonne chance!!
Trufa
la source
comme pour la commande de fichier batch Windows (.bat) (%% est pour les variables dans un fichier bat)
extraction de la première page du pdf au format jpg avec une résolution / taille réduite
for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"
(dans le post ci-dessus, sOutputFile a été mal écrit .. et avec le chemin actuel de l'installation standard de gs x86)
(regardez également Utiliser Ghostscript pour convertir un PDF de plusieurs pages en un seul JPG? )
la source
Sous Linux
J'ai écrit cette ligne de commande
Mais il fait l'affaire, je l'ai testé, il fonctionne également avec autant de niveaux de dossiers que vous avez. Assurez-vous simplement de l'exécuter à la racine de la structure des dossiers. Chaque dossier aura pour chaque fichier pdf un pdf supplémentaire se terminant par
.firstpage.pdf
Vous avez besoin
pdftk
ettree
pour cela et sur Ubuntu Linux, vous pouvez l'installer avec apt:la source
Ou utilisez cpdf https://www.coherentpdf.com/ocaml-libraries.html :
la source