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

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

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

pdf
293 голоса | спросил user72469 26 12012vEurope/Moscow11bEurope/MoscowMon, 26 Nov 2012 06:06:35 +0400 2012, 06:06:35

14 ответов


336

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

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

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

ответил Martin H 17 PMpWed, 17 Apr 2013 19:21:09 +040021Wednesday 2013, 19:21:09
187

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

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

<сильный> затем

установка нового PDF

ответил Abdennour TOUMI 14 42013vEurope/Moscow11bEurope/MoscowThu, 14 Nov 2013 14:25:49 +0400 2013, 14:25:49
62

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


<сильный> Обзор

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

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

<сильный> Скриншот

введите описание изображения здесь

<сильный> код

  #! /bin /bash
#
# TITLE: PDFextract
#
# АВТОР: (c) 2013-2015 Глутанимат (https://github.com/Glutanimate)
#
# VERSION: 0.2
#
# ЛИЦЕНЗИЯ: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
#
# ОБЗОР: PDFextract - простой сценарий извлечения PDF, основанный на Ghostscript /qpdf /cpdf.
# Он предоставляет простой способ извлечения диапазона страниц из документа PDF и подразумевается
#, который будет использоваться как скрипт /аддон файлового менеджера (например, сценарий Nautilus).
#
# ОСОБЕННОСТИ: - простой графический интерфейс, основанный на YAD, продвинутой вилке Zenity.
# - сохраняет _all_ атрибуты исходного файла PDF и не сжимает
# встроенных изображений дальше, чем они есть.
# - может выбирать из трех разных бэкендов: ghostscript, qpdf, cpdf
#
# ЗАВИСИМОСТИ: ghostscript /qpdf /cpdf poppler-utils yad libnotify-bin
#
# Вам нужно установить хотя бы один из трех сторон, поддерживаемых этим скриптом.
#
# - ghostscript, qpdf, poppler-utils и libnotify-bin доступны через
# стандартные репозитории Ubuntu
# - cpdf - это коммерческий набор инструментов CLI PDF, который является бесплатным для личного использования.
# Его можно скачать здесь: https://github.com/coherentgraphics/cpdf-binaries
# - yad можно установить из webupd8 PPA с помощью следующей команды:
# sudo add-apt-repository ppa: webupd8team /y-ppa-manager & amp; & amp; & amp; & amp; apt-get update & amp; & amp; & amp; apt-get install yad
#
# ПРИМЕЧАНИЯ. Ниже приведено краткое сравнение преимуществ и недостатков каждого бэкэнда:
#
# скорость сохранение метаданных содержание сохранение лицензии
# ghostscript: - ++ ++ open-source
# cpdf: - ++ ++
# qpdf: ++ + ++ open-source
#
# Результаты могут различаться в зависимости от документа и версии рассматриваемого инструмента.
#
# УСТАНОВКА: https://askubuntu.com/a/236415
#
# Этот сценарий был вдохновлен сценарием извлечения PDF-кода Курта Пфейфа
# (http://www.linuxjournal.com/content/tech-tip-extract-pages-pdf)
#
# Первоначально опубликовано на askubuntu
# (https://askubuntu.com/a/282453)

# Переменные

ДОКУМЕНТ = "$ 1"
BACKENDSELECTION = "^ qpdf! Ghostscript! CPDF"

# Функции

check_input () {
  если [[-z "$ 1"]]; тогда
    notify "Ошибка: не выбран входной файл."
    выход 1
  elif [[! "$ (файл -ib" $ 1 ")" == * application /pdf *]]; тогда
    notify "Ошибка: недействительный файл PDF."
    выход 1
  фи
}

check_deps () {
  для i в «$ @»; делать
    тип "$ i"> /dev /null 2 ​​& amp; 1
    если [["$?" ! = "0"]]; тогда
      MissingDeps + = "$ я"
    фи
  сделанный
}

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 /смесь 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«$ ДОКУМЕНТА»
}

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

qpdfextract () {
  qpdf --линизировать «ДОКУМЕНТ» - страницы «ДОКУМЕНТ» «$ STARTPAGE- $ STOPPAGE» - «$ OUTFILE»
  echo "$ OUTFILE"
  return 0 # даже доброкачественные предупреждения qpdf вызывают коды ошибок, поэтому мы их подавляем
}

поставить в известность(){
  эхо "$ 1"
  notify-send -i application-pdf "PDFextract" "$ 1"
}

dialog_warning () {
  эхо "$ 1"
  yad --center - диалоговое окно -изображение \
  --title "PDFExtract Warning" \
  --text "$ 1" \
  --button = "Повторите попытку: 0" \
  --button = "Выход: 1"

  [["$?" ! = "0"]] & amp; & amp; выход 0
}

dialog_settings () {
  PAGECOUNT = $ (pdfinfo "$ DOCUMENT" | grep Pages | sed 's /[^ 0-9] * //') #determine count страницы

  НАСТРОЙКИ = ($ (\
      yad --form --width 300 --центр \
          --window-icon application-pdf -image application-pdf \
          --separator = "" --title = "PDFextract" \
          --text «Выберите диапазон страниц и бэкэнд» \
          --field = "Начало: NUM" 1 [! 1 .. $ PAGECOUNT [! 1]] --field = "Конец: NUM" $ PAGECOUNT [! 1 .. $ PAGECOUNT [! 1]] \
          --field = "Backend": CB "$ BACKENDSELECTION" \
          --button = "gtk-ok: 0" --button = "gtk-cancel: 1" \
      ))

  SETTINGSRET = "$?"

  [["$ SETTINGSRET"! = "0"]] & amp; & amp; & amp; & amp; выход 1

  STARTPAGE = $ (printf% .0f $ {SETTINGS [0]}) #round numbers и хранить массив в переменных
  STOPPAGE = $ (printf% .0f $ {НАСТРОЙКИ [1]})
  BACKEND = "$ {НАСТРОЙКИ [2]}"
  Экстрактор = "$ {} BACKEND экстракт"

  check_deps "$ BACKEND"

  если [[-n "$ MissingDeps"]]; тогда
    dialog_warning "Ошибка, отсутствующая зависимость: $ MissingDeps"
    unset MissingDeps
    dialog_settings
    вернуть
  фи

  если [["$ STARTPAGE" -gt "$ STOPPAGE"]]; тогда
    dialog_warning "<b> Стартовая страница выше страницы остановки. </b>"
    dialog_settings
    вернуть
  фи

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

extract_pages () {
  $ EXTRACTOR
  EXTRACTORRET = "$?"
  если [["$ EXTRACTORRET" = "0"]]; тогда
    уведомлять "Страницы $ STARTPAGE в $ STOPPAGE, успешно извлеченные".
  еще
    уведомить «Произошла ошибка. Пожалуйста, проверьте вывод CLI».
  фи
}


# Главный

check_input "$ 1"
dialog_settings
extract_pages
 

<сильный> Установка

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


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


<сильный> Обзор

  

PDF-Shuffler - это небольшое приложение python-gtk, которое помогает пользователю объединять или разбивать PDF-документы, а также вращать, обрезать и изменять их страницы с помощью интерактивного и интуитивно понятного графического интерфейса. Это интерфейс для python-pyPdf.

<сильный> Установка

  sudo apt-get install pdfshuffler
 

<сильный> Использование

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

введите описание изображения здесь>> </p>

<hr>
<h2> Элементы страницы - Inkscape </h2>

<hr>
<p> <сильный> Обзор </STRONG> </p>

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

<p> <сильный> Установка </STRONG> </p>

<pre> <code> sudo apt-get install inkscape
</code> </pre>

<p> <сильный> Использование </STRONG> </p>

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

<p> <img src =

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

введите описание изображения здесь>> </p>

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

<p> <img src =

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

введите описание изображения здесь>> </p>

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

<p> <img src =

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

введите описание изображенияздесь

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

введите описание изображения здесь>> </p></div>
										<div class=ответил Glutanimate 17 PMpWed, 17 Apr 2013 19:11:27 +040011Wednesday 2013, 19:11:27

30

Сохраните это как скрипт оболочки, например pdfextractor.sh:

  #! /Bin /Баш
# эта функция использует 3 аргумента:
# $ 1 - первая страница диапазона для извлечения
# $ 2 - последняя страница диапазона для извлечения
# $ 3 - входной файл
# выходной файл будет называться «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 PMpTue, 16 Apr 2013 21:40:44 +040040Tuesday 2013, 21:40:44
26

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».

http://sourceforge.net/projects/qpdf/

ответил Ho1 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 09 Sep 2015 10:10:04 +0300 2015, 10:10:04
18

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

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

  pdfseparate sample.pdf sample-% d.pdf

извлекает все страницы из sample.pdf, если i.e. sample.pdf имеет 3 страницы, это
   производит

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

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

  pdfseparate -f 1 -l 1 sample.pdf sample-1.pdf
 
ответил jdmcbr 29 +03002014-10-29T21:17:26+03:00312014bEurope/MoscowWed, 29 Oct 2014 21:17:26 +0300 2014, 21:17:26
17

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

  Сортировка отсканированных страниц
     pdftk A = even.pdf B = odd.pdf shuffle A B output collated.pdf
     или если odd.pdf находится в обратном порядке:
     pdftk A = even.pdf B = odd.pdf shuffle Выход Bend-1 collated.pdf

   Присоединяйтесь in1.pdf и in2.pdf к новому PDF, out1.pdf
     pdftk in1.pdf in2.pdf выход cat out1.pdf
     или (с использованием ручек):
     pdftk A = in1.pdf B = in2.pdf cat A B output out1.pdf
     или (с использованием подстановочных знаков):
     pdftk * .pdf выход cat.pdf

   Удалить страницу 13 из in1.pdf, чтобы создать out1.pdf
     pdftk in.pdf cat 1-12 14-end выход out1.pdf
     или:
     pdftk A = in1.pdf cat A1-12 Выход A14-end out1.pdf

   Разверните один PDF-документ на страницы и выгрузите его данные в
   doc_data.txt
     Пакет pdftk in.pdf

   Поверните первую страницу PDF до 90 градусов по часовой стрелке
     pdftk in.pdf cat 1east 2-end выход out.pdf

   Поворот всего документа PDF на 180 градусов
     pdftk in.pdf cat 1-endouth output out.pdf
 

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

  pdftk A = input.pdf cat A <page_range> выходной выход.pdf
 
ответил Andrzej Pronobis 29 +03002014-10-29T21:23:07+03:00312014bEurope/MoscowWed, 29 Oct 2014 21:23:07 +0300 2014, 21:23:07
10

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

  pdfjam <input file> <диапазоны страниц> -o <выходной файл>
 

Например:

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

См. https://tex.stackexchange.com/a/79626/8666

ответил Ioannis Filippidis 1 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowFri, 01 Sep 2017 23:18:59 +0300 2017, 23:18:59
6

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

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

<сильный> Описание:

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

«Установить

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

Regars.

ответил Roman Raguet 26 12012vEurope/Moscow11bEurope/MoscowMon, 26 Nov 2012 06:17:49 +0400 2012, 06:17:49
6

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

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

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

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

      pdftk myoldfile.pdf cat 1-2 4-5 вывод mynewfile.pdf
     

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

ответил theCode 3 Mayam16 2016, 07:00:19
5

Как оказалось, я могу сделать это с помощью 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
 

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

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

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

imagemagick transform> crop menu

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

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

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

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

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

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

imagemagick crop menu

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

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

imagemagick save as pdf

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

imagemagick select page geometry

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

ответил carnendil 19 AMpFri, 19 Apr 2013 04:54:45 +040054Friday 2013, 04:54:45
2

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

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

ответил To Do 1 J0000006Europe/Moscow 2013, 14:45:06
0

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

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

ответил James 14 FebruaryEurope/MoscowbFri, 14 Feb 2014 21:34:46 +0400000000pmFri, 14 Feb 2014 21:34:46 +040014 2014, 21:34:46
0

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

ответил Kai Petzke 26 MarpmMon, 26 Mar 2018 13:36:24 +03002018-03-26T13:36:24+03:0001 2018, 13:36:24

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132