Как я могу извлечь диапазон страниц / часть PDF?

321

Есть ли у вас идея, как извлечь часть PDF-документа и сохранить его в формате PDF? В OS X это абсолютно тривиально, используя Preview. Я пробовал PDF-редактор и другие программы, но безрезультатно.

Мне нужна программа, в которой я выбираю часть, которую я хочу, а затем сохраняю ее как PDF с помощью простой команды типа CMD + N в OS X. Я хочу извлеченная часть должна быть сохранена в формате PDF, а не jpeg и т. д.

    
задан user72469 26.11.2012 в 02:06
источник

14 ответов

367

pdftk - полезный многоплатформенный инструмент для работы ( домашняя страница pdftk ).

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

вы передаете имя файла основного pdf, тогда вы указываете, что он включает только определенные страницы (12-15 в этом примере) и выводит их в новый файл.

    
ответ дан Martin H 17.04.2013 в 15:21
199

Очень просто, используйте читатель PDF по умолчанию:

печатать как файл. вот и все!

затем

    
ответ дан Abdennour TOUMI 14.11.2013 в 10:25
66

Диапазон страниц - сценарий Nautilus

Обзор

Я создал несколько более продвинутый скрипт, основанный на учебнике @ThiagoPonte. Его ключевыми особенностями являются

  • , что он основан на графическом интерфейсе,
  • совместим с пробелами в именах файлов,
  • и на основе трех разных бэкендов, которые могут сохранять все атрибуты исходного файла

Скриншот

код

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

Установка

Пожалуйста, следуйте общим инструкциям по установке сценариев Nautilus . Обязательно внимательно прочитайте заголовок сценария, так как это поможет прояснить установку и использование скрипта.

Частичные страницы - PDF Shuffler

Обзор

PDF-Shuffler is a small python-gtk application, which helps the user to merge or split pdf documents and rotate, crop and rearrange their pages using an interactive and intuitive graphical interface. It is a frontend for python-pyPdf.

Установка

sudo apt-get install pdfshuffler

Использование

PDF-Shuffler может обрезать и удалить отдельные страницы PDF. Вы можете использовать его для извлечения диапазона страниц из документа или даже частичных страниц с помощью функции обрезки:

Элементыстраницы-Inkscape

Обзор

Inkscape-оченьмощныйредакторвекторнойграфикисоткрытымисходнымкодом.Онподдерживаетширокийдиапазонразличныхформатов,включаяфайлыPDF.Выможетеиспользоватьегодляизвлечения,измененияисохраненияэлементовстраницыизфайлаPDF.

Установка

sudoapt-getinstallinkscape

Использование

1.)ОткройтеPDF-файлпосвоемувыборуспомощьюInkscape.Появитсядиалоговоеокноимпорта.Выберитестраницу,изкоторойвыхотитеизвлечьэлементы.Оставьтеостальныенастройкитакими,какони:

2.) В Inkscape нажмите и перетащите, чтобы выбрать элементы (ы), которые вы хотите извлечь:

3.)Инвертируйтевыделениеспомощью!иудалитевыделенныйобъектспомощьюDELETE:

4.) Обрезать документ до остальных объектов, обратившись к диалоговому окну Document Properties с помощью CTRL + SHIFT + D и выберите "подходящий документ для изображения":

5.)СохранитедокументкакфайлPDFизФайл->Сохранитькак:

6.) Если в вашем обрезанном документе есть растровые / растровые изображения, вы можете установить их DPI в появившемся диалоговом окне:

7.)Есливывыполниливсешаги,высоздадитенастоящийPDF-файл,которыйбудетсостоятьтолькоизобъектовповашемувыбору:

    
ответ дан Glutanimate 17.04.2013 в 15:11
32

Сохраните это как скрипт оболочки, например 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}

Чтобы запустить тип:

./pdfextractor.sh 4 20 myfile.pdf

1) 4 ссылается на страницу, на которой он начнет новый pdf.

2) 20 ссылается на страницу, на которой он закончит pdf с помощью.

3) myfile.pdf - это файл pdf, который вы хотите извлечь.

Выходной файл будет myfile_p4_p20.pdf в том же каталоге исходного файла pdf.

Все это и более подробная информация здесь: Технический совет

    
ответ дан ThiagoPonte 16.04.2013 в 17:40
29

QPDF отлично. Используйте его таким образом, чтобы извлечь страницы 1-10 из input.pdf и сохранить их как output.pdf .

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

Обратите внимание, что input.pdf записывается дважды.

Вы можете установить его, вызвав:

apt-get install qpdf

Или, перейдя в каталог приложений Ubuntu:

ЭтоотличныйинструментдляманипуляцийPDF,которыйоченьбыстрый,имееточеньмалозависимостей.«Онможетшифроватьилинеаризоватьфайлы,раскрыватьвнутренностиPDF-файлаиделатьмногодругихопераций,полезныхконечнымпользователямиразработчикамPDF».

Ссылка

    
ответ дан Ho1 09.09.2015 в 07:10
21

Утилита командной строки называется pdfseparate .

Из документов:

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

Или, чтобы выбрать одну страницу (в данном случае первую страницу) из файла sample.pdf:

pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
    
ответ дан jdmcbr 29.10.2014 в 18:17
17

pdftk ( sudo apt-get install pdftk ) - отличная командная строка для обработки PDF. Вот несколько примеров того, что может сделать pdftk :

   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

В вашем случае я бы сделал:

     pdftk A=input.pdf cat A<page_range> output output.pdf
    
ответ дан Andrzej Pronobis 29.10.2014 в 18:23
10

В любой системе установлено распределение TeX:

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

Например:

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

См. Ссылка

    
ответ дан Ioannis Filippidis 01.09.2017 в 20:18
7

Вы пробовали PDF-файл?

Вы можете, например, извлечь страницы и сохранить их в формате pdf.

Описание:

PDF Mod - простой инструмент для изменения документов PDF. Он может вращать, извлекать, удалять и переупорядочивать страницы с помощью перетаскивания. Несколько документов можно комбинировать с помощью перетаскивания и перетаскивания. Вы также можете редактировать заголовок, тему, автора и ключевые слова PDF-документа с использованием PDF-мод.

Надеюсь, это будет полезно.

Regars.

    
ответ дан Roman Raguet 26.11.2012 в 02:17
6

Как оказалось, я могу сделать это с imagemagick . Если у вас его нет, установите его просто:

sudo apt-get install imagemagick

Примечание 1 : Я пробовал это с помощью одностраничного pdf (я учусь использовать imagemagick , поэтому я не хотел больше проблем, чем необходимо). Я не знаю, будет ли / работать с несколькими страницами, но вы можете извлечь одну страницу с pdftk :

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

, где вы указываете номер страницы, который нужно разделить (в приведенном выше примере A1 выбирает первую страницу).

Примечание 2 : Полученное изображение с использованием этой процедуры будет растром.

Откройте pdf с помощью команды display , которая является частью пакета imagemagick :

display file.pdf

Шахта выглядела так:


Нажмитенаизображение,чтобыувидетьверсиюсполнымразрешением

Теперьвынажимаетенаокно,именюпоявляетсявсторону.ТамвыберитеТрансформация|<Сильный>Crop.

В главном окне вы можете выбрать область, которую хотите обрезать, просто перетащив указатель (классический выбор угла в угол).


Обратитевниманиенаручнойуказательвокругизображенияпривыборе

Этотвыборможноуточнить,преждечемпереходитькследующемушагу.

Кактольковызакончите,обратитевниманиенамаленькийпрямоугольник,которыйпоявляетсявверхнемлевомуглу(см.изображениевыше).Онпоказываетразмерывыбраннойобласти(например,281x218)ивторуюкоординатыпервогоугла(например,+256+215).

Запишитеразмерывыбраннойобласти;вампонадобитсяеговмоментсохраненияобрезанногоизображения.

Теперь,сновавменюpop(теперьэтоконкретноеменю«crop»),нажмитекнопкуОбрезка.

Наконец, как только вы удовлетворены результатами обрезки, нажмите на меню Файл | <Сильный> Сохранить

Перейдите в папку, в которой вы хотите сохранить обрезанный pdf, введите имя, нажмите кнопку Формат , в окне «Выбрать тип изображения» выберите PDF и нажмите кнопку Выбрать . В окне «Обзор и выбор файла» нажмите кнопку Сохранить .

Передсохранениемimagemagickпопросит«выбратьгеометриюстраницы».Здесьвывводитеразмерывашегообрезанногоизображения,используяпростуюбукву«x»дляразделенияшириныивысоты.

Теперь вы можете сделать все это отлично из командной строки (команда convert с опцией -crop ) - конечно, это быстрее, но вам нужно будет заранее знать координаты изображения, которое вы хотите извлечь , Проверьте man convert и пример на своей веб-странице .

    
ответ дан carnendil 19.04.2013 в 00:54
6

Я пытался сделать то же самое. Все, что вам нужно сделать, это:

  1. установить pdftk :

    sudo apt-get install pdftk
    
  2. , если вы хотите извлечь случайные страницы:

    pdftk myoldfile.pdf cat 1 2 4 5 output mynewfile.pdf
    
  3. , если вы хотите извлечь диапазон:

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

Пожалуйста, проверьте источник для получения дополнительной информации. .

    
ответ дан theCode 03.05.2016 в 04:00
2

PDF Split и Merge весьма полезны для этого и других операций манипулирования PDF.

Загрузить здесь

    
ответ дан To Do 01.06.2013 в 10:45
1

Поскольку первоначальный пользователь запросил интерактивный инструмент, а не инструмент командной строки: простым решением является использование любого средства просмотра PDF (okular на Kubuntu, evince или даже Firefox на Ubuntu), а затем просто используйте стандартный диалог печати, выберите «распечатать в файл PDF», а затем выбрать в диалоговом окне расширенных настроек, на каких страницах «распечатать». Этот вариант имеет некоторые недостатки, так как некоторые трюки в оригинальном PDF (например, вращение страниц, форм и т. Д.) Могут быть потеряны, но это работает просто для большинства простых PDF-файлов.

    
ответ дан Kai Petzke 26.03.2018 в 10:36
0

Если вы хотите извлечь из своих PDF-файлов, вы можете использовать Ссылка . Это замечательный инструмент для извлечения заметок, ярлыков и изображений из PDF-файлов. Вы также можете посмотреть учебники на Youtube, набрав sumnotes .

Надеюсь, вам понравится!

    
ответ дан James 14.02.2014 в 17:34