Dividindo todos os arquivos em uma pasta com pdftk

1

Estou tentando usar o pdftk para dividir uma pasta contendo arquivos pdf em suas páginas constituintes. Aqui está o meu código:

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

O comando em si não parece estar incorreto, mas recebo um erro de java da seguinte forma:

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)

Parece haver algum reconhecimento desse problema , mas não está claro como / se tiver sido resolvido.

Estou tentando obter minha saída para que, em um exemplo, o arquivo 'ad.pdf' seja dividido em 'ad.pdf_01' e 'ad.pdf_02' se contiver duas páginas.

    
por Fruitspunchsamurai 27.01.2017 / 21:55

2 respostas

2

O problema parece ser que pdftk burst padroniza a nomeação de seus arquivos de saída como pg_0001.pdf , pg_0002.pdf e assim por diante, independentemente do nome do arquivo de entrada.

Exatamente por quê que causa erros não está claro - possivelmente ele começa a processar o próximo arquivo antes dos arquivos de saída anteriores terem sido fechados. Em qualquer caso, a substituição de arquivos obviamente não é desejável neste caso - portanto, a solução é alterar a saída em uma base por arquivo.

De acordo com a página de manual 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.

então, por exemplo, você poderia fazer

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

que para entradas fileA.pdf , fileB.pdf resultará em arquivos de saída fileA-01.pdf , fileA-02.pdf , ... fileB-nm.pdf (removendo e adicionando novamente a extensão .pdf após o sufixo numérico).

Se você realmente quiser ad.pdf - > ad.pdf_01 que seria "${file}_%02d" .

    
por steeldriver 28.01.2017 / 00:36
1

Eu gostaria

  • Verifique se o seu pdftk está na versão 2.01 porque o problema deve ser fixo, de acordo com o problema que você vinculou.
  • Experimente um JRE diferente instalado, link OpenJDK ou Oracle JRE.
  • Experimente Sejda , linha de comando, de código aberto e divide arquivos PDF (entre outras coisas), você pode personalizar nomes de saída .

Infelizmente, isso é um NullPointerException não detectado e não há detalhes, por isso é difícil dizer o que está errado.

    
por Andrea Vacondio 28.01.2017 / 20:11