Bir sayfa aralığını / PDF'nin bir bölümünü nasıl çıkarabilirim?

306

Bir PDF belgesinin bir bölümünün nasıl çıkarılacağını ve PDF olarak nasıl kaydedileceğini biliyor musunuz? OS X'de Önizleme'yi kullanarak kesinlikle önemsizdir. PDF editörünü ve diğer programları denedim ama boşuna değil.

İstediğim parçayı seçtiğim ve sonra OS X'deki CMD + N gibi basit bir komutla pdf olarak kaydettiğim bir program istiyorum. çıkartılan kısım PDF formatında ve jpeg vb. ile kaydedilmeyecek.

    
sordu user72469 26.11.2012 03:06

14 cevap

346

pdftk , iş için yararlı bir çoklu platform aracıdır ( pdftk anasayfa ).

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

ana pdf dosyasının dosya adını iletirsiniz, sonra sadece belirli sayfaları (bu örnekte 12-15) dahil edip yeni bir dosyaya çıkardığını söylersiniz.

    
verilen cevap Martin H 17.04.2013 17:21
194

Çok basit, varsayılan PDF okuyucu kullan:

dosya olarak yazdır. işte bu!

ve

    
verilen cevap Abdennour TOUMI 14.11.2013 11:25
62

Sayfa aralığı - Nautilus komut dosyası

genel

Bağlantılı @ThiagoPonte'ye dayanan biraz daha gelişmiş bir komut dosyası oluşturdum. Temel özellikleri:

  • bu GUI tabanlı,
  • dosya adlarındaki boşluklarla uyumlu,
  • ve orijinal dosyanın tüm özelliklerini koruyabilen üç farklı arkaplana göre

Ekran

Kod

#!/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 "[email protected]"; 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

Kurulum

Lütfen Nautilus komut dosyaları için genel yükleme talimatlarını izleyin . Komut dosyasının kurulumunu ve kullanımını netleştirmeye yardımcı olacağından, komut dosyasının üstbilgisini dikkatlice okuduğunuzdan emin olun.

Kısmi sayfalar - PDF Shuffler

genel

  

PDF-Shuffler, kullanıcının pdf belgelerini birleştirmesine veya bölmesine ve sayfalarını etkileşimli ve sezgisel bir grafik arabirimi kullanarak döndürmesine, kırpmasına ve yeniden düzenlemesine yardımcı olan küçük bir python-gtk uygulamasıdır. Python-pyPdf için bir önyüzdür.

Kurulum

sudo apt-get install pdfshuffler

Kullanım

PDF-Shuffler tek PDF sayfalarını kırpabilir ve silebilir. Kırpma işlevini kullanarak bir belgeden sayfa aralığı veya kısmi sayfalar çıkarmak için kullanabilirsiniz:

Sayfa öğeleri - Inkscape

genel

Inkscape, çok güçlü bir açık kaynaklı vektör grafik editörüdür. PDF dosyaları dahil olmak üzere çok çeşitli formatları destekler. Sayfa öğelerini bir PDF dosyasından ayıklamak, değiştirmek ve kaydetmek için kullanabilirsiniz.

Kurulum

sudo apt-get install inkscape

Kullanım

1.) Seçtiğiniz PDF dosyasını Inkscape ile açın. Bir içe aktarma iletişim kutusu görünecektir. Öğeleri çıkarmak istediğiniz sayfayı seçin. Diğer ayarları oldukları gibi bırakın:

2.) Inkscape’de, çıkarmak istediğiniz öğeyi (öğeleri) seçmek için tıklayın ve sürükleyin:

3.) Seçimi ! ile ters çevirin ve seçili nesneyi DELETE ile silin:

4.) CTRL + SHIFT Belge Özellikleri iletişim kutusuna erişerek belgeyi kalan nesnelere kırın. > + D ve "resmi belgeye sığdır" ı seçerek:

5.) Belgeyi Dosya - & gt; Farklı kaydet iletişim kutusu:

6.) Kırpılmış belgenizde bitmap / raster görüntüler varsa, DPI'larını sonraki pencerede beliren iletişim kutusuna ayarlayabilirsiniz:

7.) Tüm adımları izlediyseniz, yalnızca seçtiğiniz nesnelerden oluşan gerçek bir PDF dosyası üretmiş olursunuz:

    
verilen cevap Glutanimate 17.04.2013 17:11
31

Bunu pdfextractor.sh gibi bir kabuk komut dosyası olarak kaydedin:

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

Türü çalıştırmak için:

./pdfextractor.sh 4 20 myfile.pdf

1) 4, yeni pdf'yi başlatacağı sayfaya işaret eder.

2) 20, pdf ile biteceği sayfaya işaret eder.

3) myfile.pdf, parçaları çıkarmak istediğiniz pdf dosyasıdır.

Çıktı, aynı dizinde orijinal pdf dosyası olan myfile_p4_p20.pdf olacaktır.

Tüm bu ve daha fazla bilgi burada: Teknik İpucu

    
verilen cevap ThiagoPonte 16.04.2013 19:40
26

QPDF harika. % Co_de% sayfasından 1-10 arası sayfaları ayıklamak ve input.pdf olarak kaydetmek için bu şekilde kullanın.

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

Lütfen output.pdf 'nin iki kez yazıldığını unutmayın.

Bunu çağırarak yükleyebilirsiniz:

apt-get install qpdf

Veya, Ubuntu uygulamalar dizinine giderek:

Çok hızlı olan, çok az bağımlılığa sahip PDF manipülasyonu için harika bir araçtır. "Dosyaları şifreleyebilir ve doğrusallaştırabilir, bir PDF dosyasının içeriklerini açığa çıkarabilir ve son kullanıcılara ve PDF geliştiricilere faydalı birçok işlem gerçekleştirebilir."

İşte

    
verilen cevap Ho1 09.09.2015 09:10
20

pdfseparate adlı bir komut satırı yardımcı programı var.

Dokümanlardan:

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

Veya, dosya deneme.pdf gelen tek bir sayfa (bu durumda, ilk sayfa) seçmek için:

pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
    
verilen cevap jdmcbr 29.10.2014 19:17
17

pdftk ( sudo apt-get install pdftk ), PDF manipülasyonu için harika bir komut satırıdır. İşte pdftk 'nin neler yapabileceğine dair bazı örnekler:

   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

Senin durumunda, ben yapardım:

     pdftk A=input.pdf cat A<page_range> output output.pdf
    
verilen cevap Andrzej Pronobis 29.10.2014 19:23
10

TeX dağıtımının kurulu olduğu herhangi bir sistemde:

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

Örneğin:

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

İşte ’e bakın

    
verilen cevap Ioannis Filippidis 01.09.2017 22:18
6

PDF Mod'u denediniz mi?

Örneğin, sayfalar ayıklayabilir ve pdf olarak kaydedebilirsiniz.

Açıklama:

PDF Mod, PDF belgelerini değiştirmek için basit bir araçtır. Sürükle ve bırak ile sayfaları döndürebilir, ayıklayabilir, kaldırabilir ve sayfaları yeniden sıralayabilir. Birden çok belge sürükle ile birleştirilebilir ve bırakılabilir. PDF Modunu kullanarak bir PDF belgesinin başlığını, konusunu, yazarı ve anahtar sözcüklerini düzenleyebilirsiniz.

Bunun yararlı olacağını umuyorum.

Regars.

    
verilen cevap Roman Raguet 26.11.2012 03:17
6

Ben de aynısını yapmaya çalışıyordum. Tek yapman gereken:

  1. pdftk yüklemesi:

    sudo apt-get install pdftk
    
  2. rastgele sayfalar çıkarmak istiyorsanız:

    pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
    
  3. Bir aralık çıkarmak isterseniz:

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

Lütfen daha fazla bilgi için kaynağa bakın. .

    
verilen cevap theCode 03.05.2016 06:00
5

Sonuçta, imagemagick ile yapabilirim. Eğer sahip değilseniz, basitçe kurun:

sudo apt-get install imagemagick

Not 1 : Bunu tek sayfalık bir pdf ile denedim ( imagemagick kullanmayı öğreniyorum, dolayısıyla gerekenden daha fazla sorun istemedim). Birden fazla sayfa ile çalışıp çalışmayacağını / kullanmamasını bilmiyorum, ancak pdftk ile bir ilgi alanına sahip olabilirsiniz:

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

Bölünecek sayfa numarasını belirttiğiniz yer (yukarıdaki örnekte, A1 ilk sayfayı seçer).

Not 2 : Bu prosedürü kullanarak ortaya çıkan görüntü bir raster olacaktır.

display paketinin bir parçası olan imagemagick komutuyla pdf'yi açın:

display file.pdf

Benimki böyle görünüyordu:


Tam çözünürlük sürümünü görmek için resmin üzerine tıklayın

Artık pencereye tıklıyorsunuz ve bir menü yan tarafa geçecek. Orada Dönüştür | Kırpma .

Ana pencerede, yalnızca işaretçiyi sürükleyerek (klasik köşe-köşe seçimi) kırpmak istediğiniz alanı seçebilirsiniz.


öğesini seçerken görüntünün etrafındaki el işaretçisine dikkat edin.

Bu seçim, bir sonraki adıma geçmeden önce iyileştirilebilir.

İşiniz bittiğinde, sol üst köşede görünen küçük dikdörtgeni fark edin (yukarıdaki resme bakın). İlk önce seçilen alanın boyutlarını (ör.% Co_de%) ve ikinci köşenin koordinatlarını (ör.% Co_de%) gösterir.

Seçilen alanın boyutlarını yazınız; kırpılmış görüntüyü kaydetme anında ona ihtiyacınız olacak.

Şimdi, pop menüsünde (şimdi "kırpma" menüsü olan) geri dönün, Kırpma düğmesini tıklayın.

Son olarak, kırpma sonuçlarından memnun kaldığınızda, menüyü tıklayın Dosya | Kaydet

Kesilmiş pdf'yi kaydetmek istediğiniz klasöre gidin, bir ad yazın, "Görüntü biçimi türünü seçin" penceresindeki Biçim 'i tıklayın PDF ' i seçin ve Seç düğmesini tıklayın. "Göz at ve bir dosya seç" penceresine dönün, Kaydet düğmesini tıklayın.

Kaydetmeden önce, 281x218 "sayfa geometrisini seç" ifadesini ister. Burada, kırpılmış görüntünün boyutlarını, genişlik ve yüksekliği ayırmak için basit bir "x" harfi kullanarak yazarsınız.

Şimdi, tüm bunları komut satırından mükemmel bir şekilde yapabilirsiniz (komut +256+215 seçeneği ile imagemagick komutudur) - kesinlikle daha hızlıdır, ancak ayıklamak istediğiniz görüntünün koordinatlarını önceden bilmeniz gerekir. . % Co_de% ve web sayfalarındaki bir örneği kontrol edin.

    
verilen cevap carnendil 19.04.2013 02:54
2

PDF Bölme ve Birleştirme, bu ve diğer PDF işleme işlemleri için oldukça kullanışlıdır.

buradan indirin

    
verilen cevap To Do 01.06.2013 12:45
0

PDF'lerinizden çıkarmak isterseniz İşte 'i kullanabilirsiniz. PDF'lerden not, vurgu ve görüntü elde etmek için harika bir araçtır. Youtube'daki eğiticileri sumnotes yazarak da izleyebilirsiniz.

Umarım eğleneceksin!

    
verilen cevap James 14.02.2014 18:34
0

Orijinal kullanıcı bir komut satırı aracı değil, etkileşimli bir araç istediği için: Kolay bir çözüm, herhangi bir PDF görüntüleyiciyi (Umbuntu üzerinde Kubuntu, evince veya Firefox üzerinde okular) kullanmak ve sonra sadece standart yazdırma iletişim kutusunu kullanmaktır. "PDF dosyasına yazdır" ve sonra genişletilmiş ayarlar iletişim kutusunda "yazdır" sayfalarını seçin. Orijinal PDF'deki bazı hileler (döndürülen sayfalar, formlar vb. Gibi) kaybolabileceği için, bu varyantın bazı dezavantajları vardır, ancak çoğu basit PDF için basit bir şekilde çalışır.

    
verilen cevap Kai Petzke 26.03.2018 12:36

Etiketlerdeki diğer soruları oku