Разделить PDF по закладкам? - PullRequest
7 голосов
/ 08 апреля 2010

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

Есть ли способ автоматически разделить это по закладкам с помощью скрипта?

У нас есть только закладки для обозначения частей, а не номера страниц, поэтому нам нужно вывести номера страниц из закладок. Лучше всего подойдет инструмент Linux.

Ответы [ 3 ]

13 голосов
/ 10 апреля 2012

pdftk можно использовать для разделения файла PDF и извлечения номеров страниц закладок.

Чтобы получить номера страниц закладок, сделайте

pdftk in.pdf dump_data

и заставьте ваш скрипт читать номера страниц из вывода.

Тогда используйте

pdftk in.pdf cat A-B output out_A-B.pdf

чтобы перевести страницы из А в Б в out_A-B.pdf.

Сценарий может быть примерно таким:

#!/bin/bash

infile=$1 # input pdf
outputprefix=$2

[ -e "$infile" -a -n "$outputprefix" ] || exit 1 # Invalid args

pagenumbers=( $(pdftk "$infile" dump_data | \
                grep '^BookmarkPageNumber: ' | cut -f2 -d' ' | uniq)
              end )

for ((i=0; i < ${#pagenumbers[@]} - 1; ++i)); do
  a=${pagenumbers[i]} # start page number
  b=${pagenumbers[i+1]} # end page number
  [ "$b" = "end" ] || b=$[b-1]
  pdftk "$infile" cat $a-$b output "${outputprefix}"_$a-$b.pdf
done
4 голосов
/ 19 декабря 2012

Существует инструмент командной строки, написанный на Java, который называется Sejda , где вы можете найти команду splitbybookmarks, которая точно соответствует вашему запросу Это Java, поэтому он работает в Linux и, будучи инструментом командной строки, вы можете написать скрипт для этого.

Ответственность
Я один из авторов

3 голосов
/ 08 апреля 2010

у вас есть программы, которые созданы как pdf-split , которые могут сделать это для вас:

A-PDF Split - очень простая, молниеносная служебная программа для рабочего стола, которая позволяет разбить любой файл Acrobat pdf на файлы меньшего размера. Это обеспечивает полную гибкость и пользовательский контроль с точки зрения того, как файлы разделяются и как имена файлов разделения имеют уникальные имена. A-PDF Split предоставляет множество альтернатив для разделения больших файлов - по страницам, по закладкам и по нечетной / четной странице. Даже вы можете извлечь или удалить часть файла PDF. A-PDF Split также предлагает расширенные определенные разбиения, которые можно сохранить, а затем импортировать для использования с повторяющимися задачами разделения файлов. A-PDF Split обеспечивает максимальную гибкость разделения файлов на любой вкус.

A-PDF Split работает с PDF-файлами, защищенными паролем, и может применять различные функции безопасности PDF к разделенным выходным файлам. При необходимости вы можете рекомбинировать сгенерированные файлы расщепления с другими файлами PDF, используя утилиту, такую ​​как A-PDF Merger, для формирования новых составных файлов PDF.

A-PDF Split НЕ требует Adobe Acrobat и создает документы, совместимые с Adobe Acrobat Reader версии 5 и выше.

редактировать *

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

...