J'ai un seul fichier PDF de 6 pages que je veux diviser en six PDF séparés (1.pdf, 2.pdf, 3.pdf) de sorte que chaque fichier produit représente une page de l'entrée. J'aimerais pouvoir effectuer cette tâche simple à partir de la ligne de commande.
Réponses
Trop de publicités?Si vous êtes intéressé à faire cela à partir de la ligne de commande, vous pouvez consulter le script python splitPDF de Benjamin Han pour accomplir la tâche. Par exemple:
splitPDF.py in.pdf 3 5
diviserait le fichier in.pdf
en 3 fichiers, en scindant aux pages 3 et 5.
Si vous souhaitez extraire une plage de pages, vous pouvez utiliser le script suivant que vous appelez comme ceci (en supposant que vous l'enregistrez dans un fichier pdfextract.py quelque part sur votre chemin système, par exemple /usr/local/bin, et que vous lui attribuez l'autorisation d'exécution avec chmod 744 pdfextract.py) :
pdfextract.py --file-in /chemin/vers/un/pdf --file-out /chemin/vers/nouveau/pdf --start --stop
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
import os
import subprocess as sp
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--file-in', required=True, type=str, dest='file_in')
parser.add_argument('--file-out', required=True, type=str, dest='file_out')
parser.add_argument('--start', required=True, type=int, dest='start', default=-1)
parser.add_argument('--stop', required=True, type=int, dest='stop', default=-1)
args = parser.parse_args()
assert os.path.isfile(args.file_in)
assert not os.path.isfile(args.file_out)
# remove temporary files
for el in os.listdir('/tmp'):
if os.path.isfile(os.path.join('/tmp', el)) and el[:12] == 'pdfseparate-':
os.remove(os.path.join('/tmp', el))
sp.check_call('pdfseparate -f {:d} -l {:d} {:s} /tmp/pdfseparate-%d.pdf'.format(args.start, args.stop, args.file_in), shell=True)
cmd_unite = 'pdfunite '
for i in range(args.start, args.stop + 1):
cmd_unite += '/tmp/pdfseparate-{:d}.pdf '.format(i)
cmd_unite += args.file_out
sp.check_call(cmd_unite, shell=True)
# remove temporary files
for el in os.listdir('/tmp'):
if os.path.isfile(os.path.join('/tmp', el)) and el[:12] == 'pdfseparate-':
os.remove(os.path.join('/tmp', el))
if __name__ == "__main__":
main()
J'ai commencé à rassembler un outil pour fournir une interface simplifiée aux actions courantes.
Vous pouvez diviser les fichiers PDF en pages individuelles comme ceci :
$ npm install @lancejpollard/act -g
$ act split my.pdf -o outputDirectory
Si rien d'autre, jetez un œil au code source et voyez comment écrire votre propre script pour le faire en JavaScript.
- Réponses précédentes
- Plus de réponses