Продолжаю мини-цикл посвященный обработке PDF файлов.
Все материалы этой темы можно найти на этой странице.
Наверное многие сталкиваются с извлечением отдельных страниц из PDF файла.
Имея Windows и подписку на Adobe Acrobat Pro решение задачи очень простое, когда касается обработки одного-трех файлов, когда их сотни, то это становится мукой.
В рамках этой заметки с помощью Ghostscript научимся извлекать отдельные страницы из многостраничных PDF файлов.
Как установить Ghostscript было описано в этом материале.
Извлекаем все страницы отдельными PDF файлами:
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sOutputFile=output%02d.pdf input.pdf GPL Ghostscript 9.52 (2020-03-19) Copyright (C) 2020 Artifex Software, Inc. All rights reserved. This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY: see the file COPYING for details. Processing pages 1 through 8. Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8
Извлекаем диапазон страниц в отдельные файлы:
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=2 -dLastPage=5 -sOutputFile==output%02d.pdf input.pdf GPL Ghostscript 9.52 (2020-03-19) Copyright (C) 2020 Artifex Software, Inc. All rights reserved. This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY: see the file COPYING for details. Processing pages 2 through 5. Page 2 Page 3 Page 4 Page 5
Извлекаем страницы из списка в отдельные файлы:
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -sPageList=1,3,5 -sOutputFile=output%02d.pdf input.pdf GPL Ghostscript 9.52 (2020-03-19) Copyright (C) 2020 Artifex Software, Inc. All rights reserved. This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY: see the file COPYING for details. Processing pages 1,3,5. Page 1 Page 3 Page 5
Список страниц указывается ключом -sPageList, в качестве разделителя служат запятые, так же можно указать диапазон как:
-sPageList=1-3,5,9-10
Во всех указанных примерах выходной файл задан как output%02d.pdf
Конструкция %02d на вызоде нам дает файлы с указанием номера страницы двухразрядным числом (02), что полезно для сортировок:
output01.pdf
output02.pdf
output03.pdf
Вариан %d даст на выходе:
output1.pdf
output2.pdf
output3.pdf
Если у вас сотни страниц, то можно указать, чтобы в выводе было трехзначное число — output%03d.pdf
Если вывод указать, как output.pdf, то все извлеченные страницы соберуться в выходном файле.
Что можно использовать вместо удаление страниц в исходном файле.
На этом все.