Avez-vous une idée sur la façon d'extraire une partie d'un document PDF et de l'enregistrer au format PDF? Sous OS X, il est absolument trivial d’utiliser Preview. J'ai essayé PDF éditeur et d'autres programmes, mais en vain.
Je souhaite un programme dans lequel je sélectionne la partie souhaitée et le sauvegarde au format pdf avec une simple commande telle que CMD+N sous OS X. Je souhaite que la partie extraite soit sauvegardée au format PDF et non au format jpeg, etc.
pdftk
est un outil multi-plateforme utile pour le travail ( page d'accueil pdftk ).
pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf
vous transmettez le nom de fichier du fichier PDF principal, puis vous lui indiquez de n'inclure que certaines pages (12-15 dans cet exemple) et vous le exportez dans un nouveau fichier.
très simple, utilisez le lecteur par défaut PDF:
imprimer en fichier. c'est ça!
alors
Vue d'ensemble
J'ai créé un script légèrement plus avancé basé sur le tutoriel @ThiagoPonte associé. Ses principales caractéristiques sont
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="$1"
BACKENDSELECTION="^qpdf!ghostscript!cpdf"
# Functions
check_input(){
if [[ -z "$1" ]]; then
notify "Error: No input file selected."
exit 1
Elif [[ ! "$(file -ib "$1")" == *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 "$1"
notify-send -i application-pdf "PDFextract" "$1"
}
dialog_warning(){
echo "$1"
yad --center --image dialog-warning \
--title "PDFExtract Warning" \
--text "$1" \
--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 "$1"
dialog_settings
extract_pages
Installation
Veuillez suivre les instructions d'installation génériques pour les scripts Nautilus . Assurez-vous de lire attentivement l'en-tête du script, car cela vous aidera à clarifier l'installation et l'utilisation du script.
Vue d'ensemble
PDF-Shuffler est une petite application python-gtk, qui permet à l'utilisateur de fusionner ou de scinder des documents pdf et de faire pivoter, rogner 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 rogner et supprimer des _ PDF pages uniques. Vous pouvez l'utiliser pour extraire une plage de pages d'un document ou même de pages partielles à l'aide de la fonction de recadrage:
Vue d'ensemble
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 que vous souhaitez extraire des é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 supprimez l'objet sélectionné avec DELETE:
4.) Recadrez le document dans les objets restants en accédant à la boîte de dialogue Propriétés du document avec CTRL+SHIFT+D et en sélectionnant "adapter le document à l'image":
5.) Enregistrez le document sous forme de fichier PDF à partir du fichier . Fichier - -> Enregistrer sous dialogue:
6.) S'il y a des images bitmap/raster dans votre document recadré, vous pouvez définir leur DPI dans la boîte de dialogue qui apparaît ensuite:
7.) Si vous avez suivi toutes les étapes, vous aurez généré un véritable fichier PDF constitué uniquement des objets de votre choix:
QPDF c'est génial. Utilisez-le pour extraire les pages 1 à 10 de input.pdf
et enregistrez-le sous le nom 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 PDF la manipulation, qui est très rapide, a très peu de dépendances. "Il peut chiffrer et linéariser des fichiers, exposer les éléments internes d'un fichier PDF et effectuer de nombreuses autres opérations utiles pour les utilisateurs finaux et les développeurs PDF."
Enregistrez ceci en tant que script Shell, comme pdfextractor.sh:
#!/bin/bash
# this function uses 3 arguments:
# $1 is the first page of the range to extract
# $2 is the last page of the range to extract
# $3 is the input file
# output file will be named "inputfile_pXX-pYY.pdf"
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
-dFirstPage="${1}" \
-dLastPage="${2}" \
-sOutputFile="${3%.pdf}_p${1}-p${2}.pdf" \
"${3}"
Pour exécuter tapez:
./pdfextractor.sh 4 20 myfile.pdf
4
fait référence à la page où débutera le nouveau pdf.
20
se réfère à la page avec laquelle se terminera le pdf.
myfile.pdf
est le fichier pdf que vous souhaitez extraire des parties.
La sortie serait myfile_p4_p20.pdf
dans le même répertoire que le fichier pdf d'origine.
Tout cela et plus d'informations ici: Tech Tip
Il existe un utilitaire de ligne de commande appelé pdfseparate.
De la docs:
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) à partir du fichier sample.pdf:
pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
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
pdftk
(Sudo apt-get install pdftk
) est également une excellente ligne de commande pour la manipulation de 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 ferais:
pdftk A=input.pdf cat A<page_range> output output.pdf
J'essayais de faire la même chose. Tout ce que tu dois faire est:
installer pdftk
:
Sudo apt-get install pdftk
si vous voulez extraire des pages aléatoires:
pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
si vous voulez extraire une plage:
pdftk myoldfile.pdf cat 1-2 4-5 output mynewfile.pdf
S'il vous plaît vérifier la source pour plus d'infos.
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 permettant de modifier PDF documents. Il peut tourner, extraire, enlever
et réorganisez les pages par glisser-déposer. Plusieurs documents peuvent être combinés par glisser-déposer
et laissez tomber. Vous pouvez également éditer le titre, le sujet, l'auteur et les mots-clés d'un PDF
document utilisant PDF Mod.
J'espère que cela vous sera utile.
Regars.
Il se trouve que je peux le faire avec imagemagick
. Si vous ne l'avez pas, installez simplement avec:
Sudo apt-get install imagemagick
Note 1 : J'ai essayé cela avec un pdf d'une page (j'apprends à utiliser imagemagick
, je ne voulais donc 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 à fractionner (dans l'exemple ci-dessus, A1
sélectionne la première page).
Note 2 : L'image obtenue à l'aide de cette procédure sera un raster.
Ouvrez le fichier 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 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 rogner en faisant simplement glisser le pointeur (sélection classique d'un coin à l'autre).
Notez 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 affiche 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 l'enregistrement de l'image recadrée.
Maintenant, revenons au menu contextuel (qui est maintenant le menu "rognage" spécifique), cliquez sur le bouton Rogner .
Enfin, une fois que vous êtes satisfait des résultats du recadrage, cliquez sur le menu Fichier | Sauvegarder
Accédez au dossier dans lequel vous souhaitez enregistrer le fichier PDF tronqué, 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électionnez . De retour 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 à 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 à l'avance les coordonnées de l'image que vous voulez extraire. Vérifiez man convert
et n exemple dans leur page Web .
Comme l'utilisateur d'origine a demandé un outil interactif et non un outil de ligne de commande: Une solution simple consiste à utiliser n'importe quel visualiseur PDF (okular sur Kubuntu, evince ou même Firefox sur Ubuntu), puis d'utiliser simplement l'impression standard. Dans la boîte de dialogue, choisissez "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 des inconvénients, car certains gadgets sur le PDF original (comme les pages pivotées, les formulaires, etc.) risquent de se perdre, mais cela fonctionne directement pour la plupart des PDF simples.
PDF Split and Merge est très utile pour cela et d'autres opérations de manipulation PDF.
Télécharger de ici
Si vous voulez extraire de vos PDF, vous pouvez utiliser http://www.sumnotes.net . C'est un outil extraordinaire pour extraire des notes, des points forts et des images à partir de fichiers PDF. Vous pouvez également visionner des tutoriels sur Youtube en tapant sumnotes
.
Je espère que vous apprécierez!