web-dev-qa-db-ja.com

LinuxのコマンドラインからPDFドキュメント?

Linuxのコマンドラインを使用して、PDFドキュメントから新しいPDFドキュメントにページ範囲を抽出します。次の点に注意してください。

 $ pdftk input.pdf cat 1 verbose output output.pdf 
 Error:Failed to open PDF file:
 input.pdf 
エラーが発生しました。出力が作成されませんでした。
完了。入力エラーが発生したため、出力が作成されません。

PdftkはiTextの非常に古いバージョンにすぎないことを知っておく必要があります...上記のステートメントのキーワードは「VERYOLD」です。 "(from pdftk ca n't open pdf file )から

 $ Java -classpath /path/to/Multivalent20091027.jar tool.pdf.Split -page 1 input.pdf 
スレッド「メイン」Javaの例外。 lang.NoClassDefFoundError:tool/pdf/Split 
原因:Java.lang.ClassNotFoundException:tool.pdf.Split 
 at Java.net.URLClassLoader $ 1.run(URLClassLoader.Java:202)
 at Java.security.AccessController.doPrivileged(Native Method)
 at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
 at Java.lang.ClassLoader.loadClass( ClassLoader.Java:306)
 at Sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.Java:301)
 at Java.lang.ClassLoader.loadClass(ClassLoader.Java:247)
メインクラスが見つかりませんでした:tool.pdf.Split。プログラムは終了します。

結局のところ、これはSourceForgeの場合でも少しトリッキーなソフトウェアであり、「Practical Thoughtはこれらのツールをコマンドラインで自由に使用できるように寛大に提供しています " here -ただし、 here と表示されます:"ブラウザはオープンソースです。ドキュメントツールは無料のボーナスですオープンソースではありません。 "...これは最終的に 変換-接着(面付け)PDFドキュメント-スタックオーバーフロー からのコメントを明確にします=:

公式のsourceforgeサイトからリンクされているMultivalentのすべてのリリースには、ツールパッケージがありません。

編集:ツールが含まれている古い多価バージョンがあるようです。SOリンクを参照してください。しかし、アバンダンウェアのように見えるので、私はむしろそれを使用しない

  • 最後に、本質的にラテックスのフロントエンドであるツールは避けたい PDFjam

それで、Linuxの下でそのようなpdf分割コマンドラインツールのためのオプションはありますか?

12
sdaau

Pdfseparateは、範囲を個々のページに分割するのに非常に便利だと思います。このコマンドは、input.pdfの1〜5ページをoutput-page1.pdfoutput-page2.pdf...という名前のファイルに抽出します。

pdfseparate -f 1 -l 5 input.pdf output-page%d.pdf

それらをページ範囲に再結合する場合(たとえば、あるドキュメントの1〜3ページと別のドキュメントの4〜5ページ)、次のようにコンパニオンプログラムpdfuniteを使用できます。

pdfunite output-page1.pdf output-page2.pdf output-page3.pdf final-pages1-3.pdf
pdfunite output-page4.pdf output-page5.pdf final-pages4-5.pdf

これらのツールはpopplerの一部であり、システムにすでにインストールされている可能性があると思います。

18
JoshOrndorff

質問を詰まらせないように、これを答えとして置きます:これはunix.seの関連リンクです:

...そして 受け入れられた回答 はPythonスクリプトとPyPDFを使用します(ただし、その回答は1ページを2つに分割することを実装しているため、そのスクリプトを変更する必要があります)ページ範囲の場合、OPでの要求どおりに機能します)。

編集:私はちょうどこれを見つけました: ホッチキス-A python pypdfに基づくドキュメントPDF pypdfに基づくドキュメント(ページ3)/コミュニティの貢献/ Arch Linuxフォーラム ;これは明らかに " pypdfライブラリを利用してpdftkの(やや)軽い代替手段を提供する小さなユーティリティ "(メーリングリストはそれにいくつかの問題を指摘していることに注意してください、しかしながら)...

4
sdaau

Pdftk 2.02を使用すると、debianではうまくいきましたが、あなたにもうまくいくはずです。

pdftk input.pdf cat 2-4 output out1.pdf

1つのpdfを複数のファイルに分割する必要がある一般的なケースでは、pdftkを使用する方法が見つからなかったため、Bashスクリプトを使用しています。