Utilisez convertir pour saisir une page spécifique à partir d'un file PDF?

Je sais que je l'ai fait avant, donc je suis sûr que c'est possible, j'oublie juste comment le faire. Il y a un moyen de dire convertir pour saisir une page spécifique d'un PDF, et j'aimerais garder le format de cette page au format PDF.

ImageMagick est un outil pour les images bitmap, ce qui n'est pas le cas de la plupart des PDF. Si vous l'utilisez, il pixellisera datatables, ce qui n'est souvent pas souhaitable.

Pdftk peut extraire une ou plusieurs pages d'un file PDF.

pdftk A=input.pdf cat A42 A43 output pages_42_43.pdf 

Si vous avez une installation LaTeX avec PDFLaTeX, vous pouvez utiliser pdfpages . Il y a un wrapper shell pour pdfpages, pdfjam .

 pdfjam -o pages_42_43.pdf input.pdf 42,43 

Une autre possibilité (overkill ici, mais utile pour les exigences plus complexes qu'une seule page) est Python avec la bibliothèque PyPdf .

 #!/usr/bin/env python import copy, sys from pyPdf import PdfFileWriter, PdfFileReader input = PdfFileReader(sys.stdin) output = PdfFileWriter() for i in [42, 43]: output.addPage(input.getPage(i)) output.write(sys.stdout) 

Vous pouvez utiliser la notation d'indice avec convert(1) pour "indexer" dans un file PDF:

 $ convert source.pdf[1] dest.pdf 

La valeur de l'index dépend de la façon dont l'exportateur PDF a numéroté les pages. Dans les tests sur les files ici, les numbers semblent être basés sur zéro, donc l'exemple ci-dessus vous obtient la deuxième page du document. J'ai vu des exemples en ligne où ils montrent des index de lettre à la place, puisque apparemment le créateur de PDF "numéroté" les pages de ce document de cette façon à la place.

Malheureusement, cela ne donne pas de très bons résultats, car ImageMagick suppose que tout est basé sur un pixel, et donc rastérise l'imagerie vectorielle, telle que la typographie dans un PDF classique.

Un meilleur outil pour le travail est Ghostscript , que vous avez probablement déjà installé:

 $ gs -dNOPAUSE -dBATCH -dFirstPage=2 -dLastPage=2 -sDEVICE=pdfwrite \ -sOutputFile=dest.pdf -f src.pdf 

Cela transmet datatables PDF sans modification, puisque Ghostscript comprend le PDF (un dérivé PostScript) à un niveau beaucoup plus profond que celui d'ImageMagick.