Разделение всех файлов в папке с pdftk

Я пытаюсь использовать pdftk для разделения папки, содержащей файлы PDF в их составляющие страницы. Вот мой код:

~/MCO/MCOs$ for file in *.pdf; do pdftk "$file" burst; done

Сама команда, кажется, не является неправильной, но я получаю ошибку Java следующим образом:

Unhandled Java Exception in create_output():
Unhandled Java Exception in main():
java.lang.NullPointerException
  at gnu.gcj.runtime.NameFinder.lookup(libgcj.so.16)
  at java.lang.Throwable.getStackTrace(libgcj.so.16)
  at java.lang.Throwable.stackTraceString(libgcj.so.16)
  at java.lang.Throwable.printStackTrace(libgcj.so.16)
  at java.lang.Throwable.printStackTrace(libgcj.so.16)

Кажется, существует некоторое распознавание этой проблемы, но неясно, как/если это было разрешено.

Я пытаюсь получить свой вывод, таким образом, что для файла в качестве примера 'ad.pdf' разделяется на 'рекламу pdf_01' и 'рекламу pdf_02', если это содержит две страницы.

1
задан 27 January 2017 в 23:55

2 ответа

Проблема, кажется, что pdftk burst значения по умолчанию к именованию ее выходных файлов как pg_0001.pdf, pg_0002.pdf и так далее независимо от входного имени файла.

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

Согласно pdftk страница руководства:

                    To name these pages yourself, supply a
printf-styled format string via the output section.  For
example, if you want pages named: page_01.pdf, page_02.pdf,
etc., pass output page_%02d.pdf to pdftk.

так, например, Вы могли сделать

for file in *.pdf; do pdftk "$file" burst output "${file%.pdf}-%02d.pdf"; done

, который для исходных данных fileA.pdf, fileB.pdf приведет к выходным файлам fileA-01.pdf, fileA-02.pdf... fileB-nm.pdf (удаление и передобавление .pdf расширение после числового суффикса).

, Если бы Вы действительно хотите ad.pdf-> ad.pdf_01, который был бы "${file}_%02d".

2
ответ дан 7 December 2019 в 12:36

Я был бы

  • , Удостоверяются, что Ваш pdftk в версии 2.01, потому что проблема должна быть устранена, согласно проблеме, которую Вы связали.
  • Попытка с другим установленным JRE, свяжите OpenJDK или Oracle JRE.
  • Попытка Sejda, командная строка, открытый исходный код и действительно разделяют файлы PDF (среди прочего), Вы можете настраивать выходные имена .

, К сожалению, это - непойманное NullPointerException и нет никаких деталей, таким образом, трудно сказать то, что идет не так, как надо.

1
ответ дан 7 December 2019 в 12:36

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

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