Jak mohu získat rozsah stránek / část PDF?

318

Máte nějaký nápad, jak extrahovat část dokumentu PDF a uložit jej jako PDF? V systému OS X je pomocí náhledu zcela triviální. Zkusil jsem editor PDF a jiné programy, ale bezvýsledně.

Chtěl bych, aby program, ve kterém jsem vybral část, kterou chci, a pak ji uložit do formátu pdf s jednoduchým příkazem, jako je CMD + N extrahovanou část, která má být uložena ve formátu PDF, nikoliv jpeg atd.

    
dané user72469 26.11.2012 03:06

14 odpovědí

363

pdftk je užitečným multiplatformním nástrojem pro práci ( domovská stránka pdftk ).

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

předáte název souboru hlavního formátu pdf, pak mu řekněte, že obsahuje pouze určité stránky (v tomto příkladu 12-15) a vyveďte ho do nového souboru.

    
odpověděl Martin H 17.04.2013 17:21
198

velmi jednoduché, použijte výchozí čtečku PDF:

tisknout jako soubor. to je ono!

a

    
odpověděl Abdennour TOUMI 14.11.2013 11:25
65

Rozsah stránek - skript Nautilus

Přehled

Vytvořil jsem trochu pokročilejší skript založený na tutoriálu @ThiagoPonte propojeném na. Jeho klíčové funkce jsou

  • že je založen na grafickém rozhraní,
  • kompatibilní s mezerami v názvech souborů,
  • a založené na třech různých zálohách, které jsou schopny zachovat všechny atributy původního souboru

Screenshot

Kód

#!/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

Instalace

Postupujte podle obecných pokynů pro instalaci skriptů Nautilus . Přečtěte si pozorně hlavičku skriptu, protože to pomůže objasnit instalaci a použití skriptu.

Částečné stránky - PDF Shuffler

Přehled

  

PDF-Shuffler je malá aplikace typu python-gtk, která pomáhá uživateli sloučit nebo rozdělit pdf dokumenty a otáčet, oříznout a uspořádat své stránky pomocí interaktivního a intuitivního grafického rozhraní. Jedná se o frontend pro python-pyPdf.

Instalace

sudo apt-get install pdfshuffler

Použití

PDF Shuffler může oříznout a odstranit jednotlivé stránky PDF. Můžete jej použít k extrahování rozsahu stránek z dokumentu nebo dokonce částečných stránek pomocí funkce oříznutí:

Prvky stránky - Inkscape

Přehled

Inkscape je velmi výkonný vektorový grafický editor s otevřeným zdrojovým kódem. Podporuje širokou škálu různých formátů, včetně souborů PDF. Můžete jej použít k extrahování, úpravě a ukládání prvků stránek ze souboru PDF.

Instalace

sudo apt-get install inkscape

Použití

1.) Pomocí aplikace Inkscape otevřete soubor PDF podle vašeho výběru. Zobrazí se dialog pro import. Vyberte stránku, ze které chcete extrahovat prvky. Nechte ostatní nastavení jako taková:

2.) V aplikaci Inkscape klikněte a přetažením vyberte prvky, které chcete extrahovat:

3.) Vraťte výběr pomocí ! a odstraňte vybraný objekt pomocí DELETE :

4.) Oříznutí dokumentu na zbývající objekty v dialogovém okně Vlastnosti dokumentu CTRL + SHIFT + D a výběrem možnosti "fit document to image":

5.) Uložte dokument jako soubor PDF z Souboru - > Uložit jako :

6.) Pokud v oříznutém dokumentu existují bitmapové / rastrové obrázky, můžete nastavit jejich DPI v následujícím dialogovém okně:

7.) Pokud jste provedli všechny kroky, vytvořili jste skutečný soubor PDF, který se skládá pouze z objektů, které jste si vybrali:

    
odpověděl Glutanimate 17.04.2013 17:11
32

Uložit jako skript prostředí, jako je 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 \
   

Chcete-li spustit typ:

./pdfextractor.sh 4 20 myfile.pdf

1) 4 odkazuje na stránku, ve které začne nový pdf.

2) 20 odkazuje na stránku, ve které bude soubor PDF ukončen.

3) myfile.pdf je soubor PDF, který chcete extrahovat.

Výstupem by měl být myfile_p4_p20.pdf ve stejném adresáři původní soubor pdf.

To vše a další informace naleznete zde: Tech Tip

    
odpověděl ThiagoPonte 16.04.2013 19:40
29

QPDF je skvělý. Použijte jej tímto způsobem k extrahování stránek 1-10 zinput.pdf a uložte jej jakooutput.pdf.

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

Vezměte prosím na vědomí, žeinput.pdf je napsán dvakrát.

Můžete jej nainstalovat vyvoláním:

apt-get install qpdf

Nebo při přechodu do adresáře aplikací Ubuntu:

Je skvělým nástrojem pro manipulaci s PDF, který je velmi rychlý, má velmi málo závislostí. "Může zašifrovat a linearizovat soubory, vystavit interní soubory PDF a provést mnoho dalších operací užitečných pro koncové uživatele a vývojáře PDF."

Odkaz

    
odpověděl Ho1 09.09.2015 09:10
21

Existuje nástroj příkazového řádku nazvaný pdfseparate .

Z dokumentů:

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

Nebo vyberte jednu stránku (v tomto případě první stránku) ze souboru sample.pdf:

pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
    
odpověděl jdmcbr 29.10.2014 19:17
17

pdftk (sudo apt-get install pdftk) je skvělý příkazový řádek také pro manipulaci s PDF. Zde je několik příkladů toho, copdftk může udělat:

   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

Ve vašem případě bych:

     pdftk A=input.pdf cat A<page_range> output output.pdf
    
odpověděl Andrzej Pronobis 29.10.2014 19:23
10

V libovolném systému, ve kterém je nainstalována distribuce TeX:

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

Například:

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

Viz Odkaz

    
odpověděl Ioannis Filippidis 01.09.2017 22:18
7

Zkoušeli jste PDF Mod?

Můžete například .. extrahovat stránky a ukládat je jako pdf.

Popis:

PDF Mod je jednoduchý nástroj pro úpravu dokumentů PDF. Umí otáčet, extrahovat, odstraňovat a upravovat stránky přes drag and drop. Více dokumentů lze kombinovat přes drag and drop. Můžete také upravit titul, předmět, autor a klíčová slova dokumentu PDF PDF pomocí modulu PDF.

Doufám, že to bude užitečné.

Regars.

    
odpověděl Roman Raguet 26.11.2012 03:17
6

Snažil jsem se udělat totéž. Jediné, co musíte udělat, je:

  1. nainstalovatpdftk:

    sudo apt-get install pdftk
    
  2. pokud chcete extrahovat náhodné stránky:

    pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
    
  3. Pokud chcete získat rozsah:

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

Další informace naleznete v zdroji .

    
odpověděl theCode 03.05.2016 06:00
5

Jak se ukázalo, mohu to udělat simagemagick. Pokud ji nemáte, nainstalujte jednoduše:

sudo apt-get install imagemagick

Poznámka 1 : Snažil jsem se to s jednostránkovým pdf (učím se používatimagemagick, takže jsem nechtěl více problémů, než je třeba). Nevím, jestli / jak bude fungovat s více stránkami, ale můžete extrahovat jednu stránku, která vás zajímá spdftk:

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

, kde označujete číslo stránky, které chcete rozdělit (v příkladu výše,A1 vybírá první stránku).

Poznámka 2 : Výsledným obrázkem pomocí tohoto postupu bude rastr.

Otevřete soubor pdf příkazemdisplay, který je součástí sadyimagemagick:

display file.pdf

Můj vypadal takto:


Kliknutím na obrázek zobrazíte verzi s plným rozlišením

Nyní kliknete na okno a nabídka se rozbalí na stranu. Zde vyberte možnost Transformovat | Oříznout .

V hlavním okně můžete vybrat oblast, kterou chcete oříznout, jednoduchým přetažením ukazatele (klasický výběr rohu na roh).


Všimněte si ukazatele ve tvaru ruky kolem obrazu při výběru

Tuto volbu lze ještě před dalším krokem vylepšit.

Jakmile skončíte, nezapomeňte na malý obdélník, který se objeví v levém horním rohu (viz obrázek výše). Zobrazuje nejprve rozměry vybrané oblasti (například281x218) a druhé souřadnice prvního rohu (např.% Co_kde%).

Zapsat rozměry vybrané oblasti; potřebujete ji v okamžiku uložení oříznutého obrázku.

Nyní se v pop-up menu (což je nyní konkrétní nabídka "oříznutí") klikněte na tlačítko Oříznout .

Konečně, jakmile jste spokojeni s výsledky oříznutí, klikněte na nabídku Soubor | Uložit

Přejděte do složky, do které chcete uložit oříznutou pdf, zadejte název, klikněte na tlačítko Formát , v okně "Vyberte typ formátu obrazu" vyberte PDF a klikněte na tlačítko Vybrat . V okně "Procházet a vybrat soubor" klikněte na tlačítko Uložit .

Před uložením si+256+215 požádá o "výběr geometrie stránky". Zde zadejte rozměry oříznutého obrázku pomocí jednoduchého písmene "x" pro oddělení šířky a výšky.

Nyní můžete provést toto všechno dokonale z příkazového řádku (příkazimagemagick s volbouconvert) - určitě je to rychlejší, ale musíte předem znát souřadnice obrazu, který chcete extrahovat . Zkontrolujte-crop a příklad na jejich webové stránce .

    
odpověděl carnendil 19.04.2013 02:54
2

Rozdělit a sloučit PDF je velmi užitečné pro tuto a další operace PDF manipulace.

Stáhněte si z zde

    
odpověděl To Do 01.06.2013 12:45
0

Chcete-li získat z PDF souborů, můžete použít Odkaz . Je to úžasný nástroj pro extrahování poznámek, zvýraznění a obrázků z PDF souborů. Můžete také sledovat tutoriály na Youtube zadánímsumnotes.

Doufám, že se vám bude líbit!

    
odpověděl James 14.02.2014 18:34
0

Protože původní uživatel požádal o interaktivní nástroj a ne o nástroj příkazového řádku: Jednoduchým řešením je použít libovolný prohlížeč PDF (okulární na Kubuntu, evince nebo dokonce i Firefox na Ubuntu) a pak stačí použít standardní dialog pro tisk, vybrat "tisk do souboru PDF" a v rozšířeném dialogovém okně vyberte, které stránky chcete "vytisknout". Tato varianta má některé nevýhody, jelikož některé triky na původním PDF (jako jsou rotující stránky, formuláře apod.) Se mohou ztratit, ale pro většinu jednoduchých souborů PDF funguje přímočará.

    
odpověděl Kai Petzke 26.03.2018 12:36