Ниже приводится комментарий к ответу от pdfmerger (https://stackoverflow.com/a/30524828/3915004).
Спасибо за ваш скрипт pdfmerger!
Я знаю, что вопрос помечен как linux, но чтобы обобщить ваш скрипт для Mac OS X, нужно 2 вещи:
- ghostscript
gs
и
- команда
pdfinfo
(которая включена, например, в poppler
)
Установите их, получив сначала brew
(Google, он устанавливается с помощью некоторой команды curl / ruby-magic ^^), а затем просто:
brew install ghostscript
brew install poppler
ДОБАВЛЕНИЕ: ЧИТАТЬ ТЕКСТ-ФАЙЛ С НАЗВАНИЯМИ ГЛАВЫ:
Для расширения вашего сценария.
Я использую этот рабочий процесс в основном для книг, доступных для загрузки глав с сайта редакторов.
Текстовый файл, содержащий названия глав, может быть легко сгенерирован.
Следующая надстройка к вашему коду дополнительно читает текстовый файл 'chapters.txt', содержащий одну строку в pdf для слияния.
(Обратите внимание, я не выполнял проверку количества строк, соответствующих количеству файлов в формате PDF.)
Просто разверните ваш скрипт, заменив следующие строки:
p = subprocess.Popen('ls *pdf', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
c = subprocess.Popen('less chapters.txt', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
pdfdateien = []
kombinationen = []
chapternames = []
for line in c.stdout.readlines():
# c contains all chapter-titles
chapternames.append(line)
for line in p.stdout.readlines():
и
for index, kombination in enumerate(kombinationen):
# dateiname = kombination[0][0:len(kombination[0])-5]
#
# Hier noch dateiname evtl. verwursten
# z. B.
# lesezeichen = dateiname[0:1]+" "+dateiname[6:8]+"/"+dateiname[1:5]
# lesezeichen = dateiname
lesezeichen=chapternames[index][:-1]
anz_seiten = kombination[1][16:len(kombination[1])-1]