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

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

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

621
задан 3 April 2014 в 22:55

21 ответ

ძალიან მარტივია. გამოიყენეთ ნაგულისხმევი PDF მკითხველი, აირჩიეთ "ბეჭდვა ფაილში" და ეს არის ის!

print menu

შემდეგ:

setting new PDF

301
ответ дан 3 April 2014 в 22:55

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

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

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

599
ответ дан 3 April 2014 в 22:55

Существует служебная программа командной строки 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
35
ответ дан 3 April 2014 в 22:55

Arbedwch hwn fel sgript gragen, fel pdfextractor.sh:DLE12188400 I redeg math:

./pdfextractor.sh 4 20 myfile.pdf
  1. 4 yn cyfeirio at y dudalen y bydd yn cychwyn y pdf newydd.

  2. Mae 20 yn cyfeirio at y dudalen y bydd yn dod â'r pdf i ben gyda hi.

  3. myfile.pdf yw'r ffeil pdf rydych chi am dynnu rhannau ohoni.

Yr allbwn fyddai myfile_p4_p20.pdf yn yr un cyfeiriadur y ffeil pdf wreiddiol.

Yr holl wybodaeth hon a mwy yma: Tip Tech

52
ответ дан 3 April 2014 в 22:55

QPDF отлично. Используйте этот способ для извлечения страниц 1-10 из input.pdf и сохранения их как output.pdf :

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

При этом сохраняются все метаданные, связанные с этим файлом.

From руководство :

Если вы хотите, чтобы страницы с 1 по 5 из infile.pdf, но вы хотели, чтобы остальные метаданные были удалены, вы можете вместо этого запустить

qpdf --empty --pages infile.pdf 1-5 -- outfile.pdf

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

sudo apt-get install qpdf

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

Репозиторий кода QPDF на GitHub .

162
ответ дан 3 April 2014 в 22:55

Ystod dudalen - Sgript Nautilus


Trosolwg

Creais sgript ychydig yn fwy datblygedig yn seiliedig ar y tiwtorial @ThiagoPonte sy'n gysylltiedig â. Ei nodweddion allweddol yw

  • ei fod wedi'i seilio ar GUI,
  • sy'n gydnaws â bylchau mewn enwau ffeiliau,
  • ac yn seiliedig ar dri backends gwahanol sy'n gallu cadw holl briodoleddau'r ffeil wreiddiol

Ciplun

enter image description here

Cod

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

Gosod

Dilynwch y cyfarwyddiadau gosod generig ar gyfer sgriptiau Nautilus . Gwnewch yn siŵr eich bod yn darllen pennawd y sgript yn ofalus gan y bydd yn helpu i egluro gosod a defnyddio'r sgript.


Tudalennau rhannol - PDF Shuffler


Trosolwg

Cymhwysiad python-gtk bach yw PDF-Shuffler, sy'n helpu y defnyddiwr i uno neu rannu dogfennau pdf a chylchdroi, cnydio ac aildrefnu eu tudalennau gan ddefnyddio rhyngwyneb graffigol rhyngweithiol a greddfol. Mae'n ffrynt ar gyfer python-pyPdf.

Gosod

sudo apt-get install pdfshuffler

Defnydd

Gall PDF-Shuffler gnwdio a dileu tudalennau PDF sengl. Gallwch ei ddefnyddio i dynnu ystod tudalen o ddogfen neu hyd yn oed dudalennau rhannol gan ddefnyddio'r swyddogaeth cnydio:

enter image description here


Elfennau tudalen - Inkscape


Trosolwg

Mae Inkscape yn olygydd graffeg fector ffynhonnell agored pwerus iawn. Mae'n cefnogi ystod eang o wahanol fformatau, gan gynnwys ffeiliau PDF. Gallwch ei ddefnyddio i echdynnu, addasu ac arbed elfennau tudalen o ffeil PDF.

Gosod

sudo apt-get install inkscape

Defnydd

1.) Agorwch y ffeil PDF o'ch dewis gydag Inkscape. Bydd deialog mewnforio yn ymddangos. Dewiswch y dudalen rydych chi am dynnu elfennau ohoni. Gadewch y gosodiadau eraill fel y maent:

enter image description here

2.) Yn Inkscape cliciwch a llusgwch i ddewis yr elfen (au) rydych chi am eu tynnu:

enter image description here

3.) Gwrthdroi'r dewis gyda ! a dilëwch y gwrthrych a ddewiswyd gyda DILEU :

enter image description here

4.) Cnydau'r ddogfen i'r gwrthrychau sy'n weddill trwy gyrchu'r ymgom Dogfen Priodweddau gyda CTRL + SHIFT + D a dewis "dogfen addas i'r ddelwedd":

enter image description here

5.) Cadwch y ddogfen fel ffeil PDF o'r Ffeil -> Cadw fel deialog :

6.) Os oes delweddau map did / raster yn eich dogfen wedi'i docio gallwch chi osod eu DPI yn y dialog sy'n ymddangos nesaf:

enter image description here

7.) Os gwnaethoch ddilyn pob cam byddwch wedi cynhyrchu ffeil PDF wir sy'n cynnwys y gwrthrychau o'ch dewis yn unig:

enter image description here

88
ответ дан 3 April 2014 в 22:55

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

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

Например:

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

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

43
ответ дан 3 April 2014 в 22:55

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
20
ответ дан 3 April 2014 в 22:55

Вы пробовали PDF Mod?

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

Описание:

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

Install via the software center

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

Regars.

8
ответ дан 3 April 2014 в 22:55

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

  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
     

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

12
ответ дан 3 April 2014 в 22:55

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

sudo apt-get install imagemagick

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

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

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

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


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

display file.pdf

Мой выглядел так:

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

Теперь вы щелкаете по окну, и в стороне появляется меню. Там выберите Преобразовать | Кадрирование .

imagemagick transform>crop menu

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

selection of area to crop
Обратите внимание на указатель в форме руки вокруг изображения при выборе

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

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

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

Теперь,вернувшись во всплывающее меню (которое теперь является конкретным меню «кадрирования»), нажмите кнопку Кадрирование .

imagemagick crop menu

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

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

imagemagick save as pdf

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

imagemagick select page geometry

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

6
ответ дан 3 April 2014 в 22:55

Разделение и объединение PDF-файлов весьма полезно для этой и других операций с PDF-файлами.

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

3
ответ дан 3 April 2014 в 22:55

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

2
ответ дан 3 April 2014 в 22:55

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

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

0
ответ дан 3 April 2014 в 22:55

mutool , который поставляется с mupdf, может выполнять множество простых операций по обработке PDF, но имеет более элегантный синтаксис, чем qpdf (и некоторые другие ответы). Кроме того, это кажется быстрее на больших PDF-файлах:

# extract page range 20-40
mutool clean in.pdf out.pdf 20-40
# extract from all over the pdf
mutool clean in.pdf out.pdf '1, 3-4, 74-92'
4
ответ дан 23 November 2019 в 10:22

К сожалению, Ubuntu не предоставляет команду для этого напрямую.

Но вы можете использовать pdfseparate и pdfunite вместе (оба по умолчанию поставляются с вашим Ubuntu)

Итак, если вы хотите извлечь страницы с 32 в 65 из sourcefile.pdf в новый файл называется extract.pdf , вы можете ввести следующие команды:

mkdir tmppdfdir
pdfseparate -f 32 -l 65 sourcefile.pdf tmppdfdir/page-%d.pdf
pdfunite tmppdfdir/page*.pdf extract.pdf
rm -rf tmppdfdir/

Предупреждение: убедитесь, что tmppdfdir еще не существует!

2
ответ дан 5 January 2021 в 23:32

Apache PDFBox - это инструмент Java с открытым исходным кодом для работы с документами PDF.Он поставляется с инструментами командной строки, которые, среди прочего, могут разделять страницы из pdf ( см. Руководство здесь ).

Чтобы использовать его, просто установите pdfbox-app-2.?. ? .jar и выполните такую ​​команду:

java -jar pdfbox-app-2.0.20.jar PDFSplit -startPage 1 -endPage 10 -outputPrefix ch1 book.pdf
0
ответ дан 5 January 2021 в 23:32

Я начал собирать инструмент , чтобы обеспечить упрощенный интерфейс для общих действий.

Вы можете вырезать подмножество PDF следующим образом:

$ npm install @mountbuild/mouse -g
$ mouse slice input.pdf -s 15 -e 25 -o output.pdf

Это создаст новый PDF-файл для страниц между 15 и 25 включительно.

Если ничего другого, проверьте исходный код и посмотрите, как написать свой собственный сценарий для этого на JavaScript.

0
ответ дан 5 January 2021 в 23:32

Если вы хотите использовать встроенные команды bash, тогда pdfseparate и pdfunite для вас.

pdfseparate sample.pdf sample-%d.pdf
# ls; sample.pdf sample-1.pdf sample-2.pdf sample-3.pdf sample-4.pdf

pdfunite sample-2.pdf sample-3.pdf output.pdf
# now you can use output.pdf
4
ответ дан 5 January 2021 в 23:32

в декабре 2015 года, этот блог Ubuntu Dustin Kirkland Были более 1 миллиарда пользователей Ubuntu:

Сколько «пользователей» Ubuntu в конечном итоге в конечном итоге? Бьюсь об заклад, сегодня есть более миллиарда человек, используя Ubuntu - как прямо и косвенно. Без сомнения, есть более миллиарда человек на планете, получавшем пользу от услуг, безопасности и наличия Ubuntu сегодня.

-121--913195-

Испытано на Ubuntu 20.04 с pdftk --version 3.0.9 с 11 мая 2018 года (дата, показанная на дне человек PDFTK ).

При использовании PDFTK , вот как отформатировать его для нескольких групп страниц:

pdftk in.pdf cat 13 18 33-36 39-41 52 output out.pdf

Это будет захватывать эти группы страниц, включительно.

Для установки и / или обновления PDFTK :

sudo apt update
sudo apt install pdftk

связано:

  1. [Мой ответ] Как повернуть страницы PDF: https://unix.stackexchange.com/questions/394065/command-line-how-do-you-rotate-a-pdf-file-90- Степени / 634882 # 634882
0
ответ дан 2 April 2021 в 01:22

ThiagoPonte's Ghostscript answer is great for its portability, but it does not explain how to use a discontinuous page list, such as 2, 6, 7, 8, 9, 11. Это возможно с помощью -sPageList:

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sPageList=2,6-9,11 -sOutputFile=out.pdf in.pdf

Однако я не смог заставить его работать на старых версиях Ghostscript, поэтому, вдохновленный вопросом Stack Overflow, я создал этот сценарий оболочки, который полагается только на -dFirstPage и -dLastPage:

#!/bin/sh -f
if [ "$#" != 2 ] && [ "$#" != 3 ]; then
    >&2 echo "Usage: $0 pagelist infile [outfile]"
    exit 11
fi
range=$1
infile=$2
outfile=${3-"${2%pdf}"out.pdf}
set --
IFS=,
for i in $range; do
    set -- "$@" "-dFirstPage=${i%-*}" "-dLastPage=${i#*-}" "$infile"
done
gs -sOutputFile="$outfile" -sDEVICE=pdfwrite -dNOPAUSE -dBATCH "$@"

Вы можете сохранить его в каталоге PATH, например /usr/local/bin/, сделать его исполняемым с помощью chmod +x scriptname, а затем просто вызвать

scriptname 2,6-9,11 in.pdf out.pdf
0
ответ дан 4 September 2021 в 12:10

Другие вопросы по тегам:

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