Comment puis-je extraire une plage de pages / une partie d'un PDF?

297

Avez-vous une idée de la manière d'extraire une partie d'un document PDF et de l'enregistrer au format PDF? Sous OS X, il est absolument trivial en utilisant Preview. J'ai essayé l'éditeur de PDF et d'autres programmes mais en vain.

Je voudrais un programme où je sélectionne la partie que je veux et puis l'enregistre en pdf avec une commande simple comme CMD + N sur OS X. Je veux la partie extraite doit être enregistrée au format PDF et non jpeg, etc.

    
posée user72469 26.11.2012 - 03:06
la source

14 réponses

337

pdftk est un outil multi-plateforme utile pour le travail ( page d'accueil de pdftk ).

pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf

vous transmettez le nom de fichier du pdf principal, puis vous lui dites de n'inclure que certaines pages (12-15 dans cet exemple) et de le sortir dans un nouveau fichier.

    
réponse donnée Martin H 17.04.2013 - 17:21
la source
191

Très simple, utilisez le lecteur PDF par défaut:

imprimer en fichier. c'est ça!

alors

    
réponse donnée Abdennour TOUMI 14.11.2013 - 11:25
la source
62

Plage de pages - Script Nautilus

Présentation

J'ai créé un script légèrement plus avancé basé sur le tutoriel lié à @ThiagoPonte. Ses principales caractéristiques sont

  • que c'est basé sur une interface graphique,
  • compatible avec les espaces dans les noms de fichiers,
  • et basé sur trois moteurs différents capables de préserver tous les attributs du fichier d'origine

Capture d'écran

Code

#!/bin/bash
#
# TITLE:        PDFextract
#
# AUTHOR:       (c) 2013-2015 Glutanimate (https://github.com/Glutanimate)
#
# VERSION:      0.2
#
# LICENSE:      GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
# 
# OVERVIEW:     PDFextract is a simple PDF extraction script based on Ghostscript/qpdf/cpdf.
#               It provides a simple way to extract a page range from a PDF document and is meant
#               to be used as a file manager script/addon (e.g. Nautilus script).
#
# FEATURES:     - simple GUI based on YAD, an advanced Zenity fork.
#               - preserves _all_ attributes of your original PDF file and does not compress 
#                 embedded images further than they are.      
#               - can choose from three different backends: ghostscript, qpdf, cpdf
#
# DEPENDENCIES: ghostscript/qpdf/cpdf poppler-utils yad libnotify-bin
#                         
#               You need to install at least one of the three backends supported by this script.
#
#               - ghostscript, qpdf, poppler-utils, and libnotify-bin are available via 
#                 the standard Ubuntu repositories
#               - cpdf is a commercial CLI PDF toolkit that is free for personal use.
#                 It can be downloaded here: https://github.com/coherentgraphics/cpdf-binaries
#               - yad can be installed from the webupd8 PPA with the following command:
#                 sudo add-apt-repository ppa:webupd8team/y-ppa-manager && apt-get update && apt-get install yad
#
# NOTES:        Here is a quick comparison of the advantages and disadvantages of each backend:
#
#                               speed     metadata preservation     content preservation        license
#               ghostscript:     --               ++                         ++               open-source
#               cpdf:             -               ++                         ++               proprietary
#               qpdf:            ++                +                         ++               open-source
#
#               Results might vary depending on the document and the version of the tool in question.
#
# INSTALLATION: https://askubuntu.com/a/236415
#
# This script was inspired by Kurt Pfeifle's PDF extraction script 
# (http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf)
#
# Originally posted on askubuntu
# (https://askubuntu.com/a/282453)

# Variables

DOCUMENT=""
BACKENDSELECTION="^qpdf!ghostscript!cpdf"

# Functions

check_input(){
  if [[ -z "" ]]; then
    notify "Error: No input file selected."
    exit 1
  elif [[ ! "$(file -ib "")" == *application/pdf* ]]; then
    notify "Error: Not a valid PDF file."
    exit 1
  fi
}

check_deps () {
  for i in "$@"; do
    type "$i" > /dev/null 2>&1 
    if [[ "$?" != "0" ]]; then
      MissingDeps+="$i"
    fi
  done
}

ghostscriptextract(){
  gs -dFirstPage="$STARTPAGE "-dLastPage="$STOPPAGE" -sOutputFile="$OUTFILE" -dSAFER -dNOPAUSE -dBATCH -dPDFSETTING=/default -sDEVICE=pdfwrite -dCompressFonts=true -c \
  ".setpdfwrite << /EncodeColorImages true /DownsampleMonoImages false /SubsetFonts true /ASCII85EncodePages false /DefaultRenderingIntent /Default /ColorConversionStrategy \
  /LeaveColorUnchanged /MonoImageDownsampleThreshold 1.5 /ColorACSImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /GrayACSImageDict \
  << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /PreserveOverprintSettings false /MonoImageResolution 300 /MonoImageFilter /FlateEncode \
  /GrayImageResolution 300 /LockDistillerParams false /EncodeGrayImages true /MaxSubsetPCT 100 /GrayImageDict << /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor \
  0.4 /Blend 1 >> /ColorImageFilter /FlateEncode /EmbedAllFonts true /UCRandBGInfo /Remove /AutoRotatePages /PageByPage /ColorImageResolution 300 /ColorImageDict << \
  /VSamples [ 1 1 1 1 ] /HSamples [ 1 1 1 1 ] /QFactor 0.4 /Blend 1 >> /CompatibilityLevel 1.7 /EncodeMonoImages true /GrayImageDownsampleThreshold 1.5 \
  /AutoFilterGrayImages false /GrayImageFilter /FlateEncode /DownsampleGrayImages false /AutoFilterColorImages false /DownsampleColorImages false /CompressPages true \
  /ColorImageDownsampleThreshold 1.5 /PreserveHalftoneInfo false >> setdistillerparams" -f "$DOCUMENT"
}

cpdfextract(){
  cpdf "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -o "$OUTFILE"
}

qpdfextract(){
  qpdf --linearize "$DOCUMENT" --pages "$DOCUMENT" "$STARTPAGE-$STOPPAGE" -- "$OUTFILE"
  echo "$OUTFILE"
  return 0 # even benign qpdf warnings produce error codes, so we suppress them
}

notify(){
  echo ""
  notify-send -i application-pdf "PDFextract" ""
}

dialog_warning(){
  echo ""
  yad --center --image dialog-warning \
  --title "PDFExtract Warning" \
  --text "" \
  --button="Try again:0" \
  --button="Exit:1"

  [[ "$?" != "0" ]] && exit 0
}

dialog_settings(){
  PAGECOUNT=$(pdfinfo "$DOCUMENT" | grep Pages | sed 's/[^0-9]*//') #determine page count

  SETTINGS=($(\
      yad --form --width 300 --center \
          --window-icon application-pdf --image application-pdf \
          --separator=" " --title="PDFextract"\
          --text "Please choose the page range and backend"\
          --field="Start:NUM" 1[!1..$PAGECOUNT[!1]] --field="End:NUM" $PAGECOUNT[!1..$PAGECOUNT[!1]] \
          --field="Backend":CB "$BACKENDSELECTION" \
          --button="gtk-ok:0" --button="gtk-cancel:1"\
      ))

  SETTINGSRET="$?"

  [[ "$SETTINGSRET" != "0" ]] && exit 1

  STARTPAGE=$(printf %.0f ${SETTINGS[0]}) #round numbers and store array in variables
  STOPPAGE=$(printf %.0f ${SETTINGS[1]})
  BACKEND="${SETTINGS[2]}"
  EXTRACTOR="${BACKEND}extract"

  check_deps "$BACKEND"

  if [[ -n "$MissingDeps" ]]; then
    dialog_warning "Error, missing dependency: $MissingDeps"
    unset MissingDeps
    dialog_settings
    return
  fi

  if [[ "$STARTPAGE" -gt "$STOPPAGE" ]]; then 
    dialog_warning "<b>   Start page higher than stop page.   </b>"
    dialog_settings
    return
  fi

  OUTFILE="${DOCUMENT%.pdf} (p${STARTPAGE}-p${STOPPAGE}).pdf"
}

extract_pages(){
  $EXTRACTOR
  EXTRACTORRET="$?"
  if [[ "$EXTRACTORRET" = "0" ]]; then
    notify "Pages $STARTPAGE to $STOPPAGE succesfully extracted."
  else
    notify "There has been an error. Please check the CLI output."
  fi
}


# Main

check_input ""
dialog_settings
extract_pages

Installation

Suivez les instructions d'installation génériques pour les scripts Nautilus . Veillez à lire attentivement l’en-tête du script, car cela aidera à clarifier l’installation et l’utilisation du script.

Pages partielles - PDF Shuffler

Présentation

  

PDF-Shuffler est une petite application python-gtk qui permet à l'utilisateur de fusionner ou de diviser des documents PDF et de faire pivoter, recadrer et réorganiser leurs pages à l'aide d'une interface graphique interactive et intuitive. C'est une interface pour python-pyPdf.

Installation

sudo apt-get install pdfshuffler

Utilisation

PDF-Shuffler peut recadrer et supprimer des pages PDF uniques. Vous pouvez l'utiliser pour extraire une plage de pages d'un document ou même des pages partielles en utilisant la fonction de rognage:

Eléments de la page - Inkscape

Présentation

Inkscape est un éditeur de graphiques vectoriels open source très puissant. Il prend en charge un large éventail de formats différents, y compris les fichiers PDF. Vous pouvez l'utiliser pour extraire, modifier et enregistrer des éléments de page à partir d'un fichier PDF.

Installation

sudo apt-get install inkscape

Utilisation

1.) ouvrez le fichier PDF de votre choix avec Inkscape. Une boîte de dialogue d'importation apparaîtra. Choisissez la page dont vous souhaitez extraire les éléments. Laissez les autres paramètres tels quels:

2.) dans Inkscape, cliquez et faites glisser pour sélectionner le ou les éléments à extraire:

3.) Inverser la sélection avec ! et supprimer l’objet sélectionné avec DELETE :

4.) Recadrez le document sur les objets restants en accédant à la boîte de dialogue Propriétés du document avec CTRL + SHIFT + D et en sélectionnant "ajuster le document à l'image":

5.) Enregistrez le document sous forme de fichier PDF à partir du Fichier - & gt; Boîte de dialogue Enregistrer sous :

6.) Si votre document rogné contient des images bitmap / raster, vous pouvez définir leur DPI dans la boîte de dialogue suivante:

7.) Si vous avez suivi toutes les étapes, vous aurez créé un véritable fichier PDF composé uniquement des objets de votre choix:

    
réponse donnée Glutanimate 17.04.2013 - 17:11
la source
30

Enregistrez-le en tant que script shell, comme pdfextractor.sh:

#!/bin/bash
# this function uses 3 arguments:
#      is the first page of the range to extract
#      is the last page of the range to extract
#      is the input file
#     output file will be named "inputfile_pXX-pYY.pdf"
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
   -dFirstPage= \
   -dLastPage= \
   -sOutputFile=${3%.pdf}_p-p.pdf \
   

Pour exécuter le type:

./pdfextractor.sh 4 20 myfile.pdf

1) 4 se réfère à la page qui va démarrer le nouveau pdf.

2) 20 fait référence à la page avec laquelle il terminera le pdf.

3) myfile.pdf est le fichier pdf que vous voulez extraire des parties.

La sortie serait myfile_p4_p20.pdf dans le même répertoire que le fichier pdf original.

Tout cela et plus d’informations ici: Conseil technique

    
réponse donnée ThiagoPonte 16.04.2013 - 19:40
la source
26

QPDF est génial. Utilisez-le de cette manière pour extraire les pages 1 à 10 de input.pdf et les enregistrer sous la forme output.pdf .

qpdf --pages input.pdf 1-10 -- input.pdf output.pdf

Veuillez noter que input.pdf est écrit deux fois.

Vous pouvez l’installer en appelant:

apt-get install qpdf

Ou, en allant dans le répertoire des applications Ubuntu:

C'est un excellent outil pour la manipulation de PDF, qui est très rapide, a très peu de dépendances. "Il peut crypter et linéariser des fichiers, exposer les éléments internes d’un fichier PDF et effectuer de nombreuses autres opérations utiles aux utilisateurs finaux et aux développeurs de PDF."

lien

    
réponse donnée Ho1 09.09.2015 - 09:10
la source
18

Il existe un utilitaire de ligne de commande appelé pdfseparate .

Des documents:

pdfseparate sample.pdf sample-%d.pdf

extracts  all pages from sample.pdf, if i.e. sample.pdf has 3 pages, it
   produces

sample-1.pdf, sample-2.pdf, sample-3.pdf

Ou, pour sélectionner une seule page (dans ce cas, la première page) du fichier sample.pdf:

pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
    
réponse donnée jdmcbr 29.10.2014 - 19:17
la source
17

pdftk ( sudo apt-get install pdftk ) est également une excellente ligne de commande pour la manipulation de fichiers PDF. Voici quelques exemples de ce que pdftk peut faire:

   Collate scanned pages
     pdftk A=even.pdf B=odd.pdf shuffle A B output collated.pdf
     or if odd.pdf is in reverse order:
     pdftk A=even.pdf B=odd.pdf shuffle A Bend-1 output collated.pdf

   Join in1.pdf and in2.pdf into a new PDF, out1.pdf
     pdftk in1.pdf in2.pdf cat output out1.pdf
     or (using handles):
     pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf
     or (using wildcards):
     pdftk *.pdf cat output combined.pdf

   Remove page 13 from in1.pdf to create out1.pdf
     pdftk in.pdf cat 1-12 14-end output out1.pdf
     or:
     pdftk A=in1.pdf cat A1-12 A14-end output out1.pdf

   Burst a single PDF document into pages and dump its data to
   doc_data.txt
     pdftk in.pdf burst

   Rotate the first PDF page to 90 degrees clockwise
     pdftk in.pdf cat 1east 2-end output out.pdf

   Rotate an entire PDF document to 180 degrees
     pdftk in.pdf cat 1-endsouth output out.pdf

Dans votre cas, je le ferais:

     pdftk A=input.pdf cat A<page_range> output output.pdf
    
réponse donnée Andrzej Pronobis 29.10.2014 - 19:23
la source
10

Dans tout système sur lequel une distribution TeX est installée:

pdfjam <input file> <page ranges> -o <output file>

Par exemple:

pdfjam original.pdf 5-10 -o out.pdf

Voir lien

    
réponse donnée Ioannis Filippidis 01.09.2017 - 22:18
la source
6

Avez-vous essayé PDF Mod?

Vous pouvez par exemple extraire des pages et les enregistrer au format pdf.

Description:

PDF Mod est un outil simple pour modifier des documents PDF. Il peut faire pivoter, extraire, supprimer des pages et réorganiser les pages par glisser-déposer. Plusieurs documents peuvent être combinés par glisser-déposer et déposer. Vous pouvez également modifier le titre, le sujet, l'auteur et les mots-clés d'un document PDF en utilisant PDF Mod.

J'espère que cela vous sera utile.

Regars.

    
réponse donnée Roman Raguet 26.11.2012 - 03:17
la source
6

J'essayais de faire la même chose. Tout ce que vous avez à faire est:

  1. installer pdftk :

    sudo apt-get install pdftk
    
  2. si vous voulez extraire des pages aléatoires:

    pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
    
  3. si vous voulez extraire une plage:

    pdftk myoldfile.pdf cat 1-2 4-5 output mynewfile.pdf
    

Veuillez vérifier la source pour plus d'informations. .

    
réponse donnée theCode 03.05.2016 - 06:00
la source
5

En fait, je peux le faire avec imagemagick . Si vous ne l’avez pas, installez simplement avec:

sudo apt-get install imagemagick

Remarque 1 : J'ai essayé ceci avec un pdf d'une page (j'apprends à utiliser imagemagick , donc je ne voulais pas plus de problèmes que nécessaire). Je ne sais pas si / comment cela fonctionnera avec plusieurs pages, mais vous pouvez extraire une page d'intérêt avec pdftk :

pdftk A=myfile.pdf cat A1 output page1.pdf

où vous indiquez le numéro de page à séparer (dans l'exemple ci-dessus, A1 sélectionne la première page).

Remarque 2 : L'image résultante utilisant cette procédure sera un raster.

Ouvrez le pdf avec la commande display , qui fait partie de la suite imagemagick :

display file.pdf

Le mien ressemblait à ceci:


Cliquez sur l'image pour voir une version en pleine résolution

Maintenant, vous cliquez sur la fenêtre et un menu apparaîtra sur le côté. Là, sélectionnez Transformer | Recadrer .

De retour dans la fenêtre principale, vous pouvez sélectionner la zone que vous souhaitez recadrer en faisant simplement glisser le pointeur (sélection de coin en coin classique).


Remarquez le pointeur en forme de main autour de l’image lorsque vous sélectionnez

Cette sélection peut être affinée avant de passer à l’étape suivante.

Une fois que vous avez terminé, notez le petit rectangle qui apparaît dans le coin supérieur gauche (voir l'image ci-dessus). Il montre les dimensions de la zone sélectionnée en premier (par exemple 281x218 ) et en second lieu les coordonnées du premier coin (par exemple +256+215 ).

Notez les dimensions de la zone sélectionnée; vous en aurez besoin au moment de sauvegarder l'image recadrée.

Maintenant, revenez au menu contextuel (qui est maintenant le menu "recadrer" spécifique), cliquez sur le bouton Recadrer .

Enfin, une fois que vous êtes satisfait des résultats du recadrage, cliquez sur le menu Fichier | Enregistrer

Accédez au dossier dans lequel vous souhaitez enregistrer le fichier pdf rogné, saisissez un nom, cliquez sur le bouton Format , dans la fenêtre "Sélectionner le type de format d'image", sélectionnez PDF . et cliquez sur le bouton Sélectionner . Dans la fenêtre "Parcourir et sélectionner un fichier", cliquez sur le bouton Enregistrer .

Avant de sauvegarder, imagemagick vous demandera de "sélectionner la géométrie de la page". Ici, vous tapez les dimensions de votre image recadrée, en utilisant une simple lettre "x" pour séparer la largeur et la hauteur.

Maintenant, vous pouvez faire tout cela parfaitement à partir de la ligne de commande (la commande est convert avec l'option -crop ) - c'est sûrement plus rapide, mais vous devez connaître au préalable les coordonnées de l'image que vous voulez extraire . Vérifiez man convert et un exemple dans leur page Web .

    
réponse donnée carnendil 19.04.2013 - 02:54
la source
2

PDF Split and Merge est très utile pour cela et pour d’autres opérations de manipulation de fichiers PDF.

Téléchargez depuis ici

    
réponse donnée To Do 01.06.2013 - 12:45
la source
0

Si vous souhaitez extraire de vos PDF, vous pouvez utiliser lien . C'est un outil incroyable pour extraire des notes, des faits saillants et des images à partir de fichiers PDF. Vous pouvez également regarder des tutoriels sur Youtube en tapant sumnotes .

J'espère que ça vous plaira!

    
réponse donnée James 14.02.2014 - 18:34
la source
0

En tant qu'utilisateur original ayant demandé un outil interactif et non un outil en ligne de commande: une solution simple consiste à utiliser n'importe quel visualiseur PDF (okular sur Kubuntu, même Firefox sur Ubuntu) et à utiliser "Imprimer dans un fichier PDF", puis sélectionnez dans la boîte de dialogue des paramètres étendus les pages à "imprimer". Cette variante présente certains inconvénients, car certaines astuces sur le PDF original (comme les pages pivotées, les formulaires, etc.) peuvent être perdues, mais elles fonctionnent directement pour la plupart des fichiers PDF simples.

    
réponse donnée Kai Petzke 26.03.2018 - 12:36
la source

Lire d'autres questions sur les étiquettes