J'ai un fichier PDF de 6 pages que je souhaite scinder en 1.pdf, 2.pdf, 3.pdf, etc ...
La prévisualisation ne fonctionne pas de manière surprenante (à moins que quelque chose me manque).
J'aimerais pouvoir effectuer cette tâche simple à partir de la ligne de commande, mais à ce stade, je prendrai tout ce qui permet d'accomplir ce travail (sans télécharger de logiciel sommaire).
FYI http://users.skynet.be/tools/ ne fonctionne pas comme annoncé.
Ouvrez le fichier PDF dans l'aperçu, puis sélectionnez les vignettes dans le menu Affichage. Ctrl sélectionnez les pages que vous voulez maintenant faites glisser et déposez-les sur le bureau.
Ceci peut être réalisé en utilisant pdfseparate
. Vous pouvez installer poppler avec homebrew, par brew install poppler
. Cela installera également pdfseparate
. Pour scinder le PDF document.pdf
en une seule page 1.pdf
, 2.pdf
, etc., utilisez:
pdfseparate document.pdf %d.pdf
Si cela vous intéresse à partir de la ligne de commande, vous pouvez consulter le script Python splitPDF de Benjamin Han pour effectuer le travail. Par exemple:
splitPDF.py in.pdf 3 5
diviserait le fichier in.pdf
en 3 fichiers, en se divisant aux pages 3 et 5.
Si vous voulez extraire une plage de pages, vous pouvez utiliser le script suivant que vous appelez comme ceci (en supposant que vous l'enregistrez dans le fichier pdfextract.py quelque part sur le chemin PATH de votre système, par exemple/usr/local/bin, et lui attribuez l'exécution. permission avec chmod 744 pdfextract.py):
pdfextract.py --file-in/chemin/à/grand/pdf - fichier-out/chemin/à/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 __== "__main__":
main()
Pour une autre alternative, voir cette réponse . Ceci utilise les outils de ligne de commande ImageMagick .
convert x.pdf -quality 100 -density 300x300 x-%04d.pdf
Cependant, vous devez faire attention à la qualité.