web-dev-qa-db-ja.com

PDFTKがそこにあるファイルを見つけられないと言っているのはなぜですか?

PDFの束を1つのドキュメントにコンパイルしようとしています。 lsは、ファイルが私がいるディレクトリにあり、読み取り可能であることを示しています(_-rw-r--r--_)。しかし、_pdftk 2017.pdf cat output test.pdf_を実行しようとすると、エラーが発生します。

_Error: Unexpected Exception in open_reader()
Java.io.FileNotFoundException: 2017.pdf (Permission denied)
   at gnu.Java.nio.channels.FileChannelImpl.open(libgcj.so.16)
   at gnu.Java.nio.channels.FileChannelImpl.<init>(libgcj.so.16)
   at gnu.Java.nio.channels.FileChannelImpl.create(libgcj.so.16)
   at Java.io.RandomAccessFile.<init>(libgcj.so.16)
   at pdftk.com.lowagie.text.pdf.RandomAccessFileOrArray.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PRTokeniser.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
   at pdftk.com.lowagie.text.pdf.PdfReader.<init>(pdftk)
Error: Failed to open PDF file: 
   2017.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.
_

その操作にさらにファイルを追加すると、それぞれのエラーが発生します。

コマンドライン_mv 2017.pdf foo.pdf_からPDFの名前を変更できますが、同じエラーが発生します。 Error: Unexpected Exception in open_reader() Java.io.FileNotFoundException: foo.pdf (Permission denied)

たとえば、存在しないファイルを呼び出そうとすると、 _pdftk 123.pdf cat output test.pdf_別のエラーが発生します:

_Error: Unable to find file.
Error: Failed to open PDF file: 
   123.pdf
Errors encountered.  No output created.
Done.  Input errors, so no output created.
_

_tail 2017.pdf_でも、2017.pdfの最後の数行を示しています。

_<<
/Info 63 0 R
/ID [<cc59759cedaf07420bbe3250ba5d8971><f259ad128310d106c7aa80b673c4bd70>]
/Root 62 0 R
/Size 64
>>
startxref
42883
%%EOF
_

ファイルを表示してtailで読み取ることができるのに、pdftkでファイルを読み取れないのはなぜですか?

9
Amanda

TL; DR

Snapsのアクセス権管理が問題の原因のようです。

これを解決するには、次のいずれかを行います。

  • $ HOMEフォルダーから作業を行います。シンボリックリンクは機能しないことに注意してください。
  • ディストリビューション以外のソースからpdftkをインストールします。たとえば、ppa:malteworld/ppaにはpdftk-Javaのバージョン3.0.0があります。

元の返信

同じ問題が発生しています。 USBドライブのフォルダーから実行していました。そして、確かに、私のホームディレクトリのサブフォルダからこれを行うと、うまくいきます。

/ tmpの下のサブフォルダーから実行しようとしたが、どちらも機能しなかったので、これは私を困惑させた(別のエラー、冗長度が低い、「Failed to open PDF file ")。同じ場合/ mntの下にマウントされたセカンダリディスクのサブフォルダーから試します。

私はそれがスナップの制限に関連しているのではないかと思います(私は最新のUbuntu 18.04.3を使用しています)。しかし、私はスナップを扱う経験がほとんどないため、これ以上探索することはできません。

その場合、Ubuntuユーザーがホームフォルダー以外の場所からpdftkを使用できなくなるので、それはかなりうまくいきません。例えば。 USBドライブ、追加ディスク、共有ネットワークドライブ。

(申し訳ありませんが、コメントとして返信できず、評判が不十分でした...)

8
AxelVoitier

Snapはファイルシステムへのアクセスを制限しているようです。

ファイルを$ HOME(/ tmpや他の場所ではない)に移動したときにうまくいきました

1
Moritz