Ama*_*nda 24 java pdftk dropbox
我正在尝试将一堆 PDF 编译成一个文档。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.
Run Code Online (Sandbox Code Playgroud)
如果我向该操作添加更多文件,我只会收到每个文件的错误。
我可以从命令行重命名 PDF,但mv 2017.pdf foo.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.
Run Code Online (Sandbox Code Playgroud)
甚至tail 2017.pdf
显示了 2017.pdf 的最后几行:
<<
/Info 63 0 R
/ID [<cc59759cedaf07420bbe3250ba5d8971><f259ad128310d106c7aa80b673c4bd70>]
/Root 62 0 R
/Size 64
>>
startxref
42883
%%EOF
Run Code Online (Sandbox Code Playgroud)
如果我可以看到文件并用 阅读它tail
,为什么pdftk
不能阅读它?
Axe*_*ier 24
Snaps 访问权限管理似乎是问题的根源。
要解决此问题,您可以:
ppa:malteworld/ppa
有 3.0.0 版的pdftk-java
.我有相同的问题。我是从 USB 驱动器上的文件夹中执行此操作的。事实上,从我的主目录的子文件夹中执行此操作是可行的。
当我试图从 /tmp 下的子文件夹执行此操作时,这让我感到困惑,但它也不起作用(出现了不同的错误,不那么冗长,“无法打开 PDF 文件”)。如果我从 /mnt 下安装的辅助磁盘上的子文件夹尝试,也是如此。
我怀疑这可能与 snaps 的限制有关(我使用的是最新的 Ubuntu 18.04.3)。但是我处理快照的经验很少,所以我无法进一步探索。
如果是这样,那将是非常糟糕的,因为这会阻止 Ubuntu 用户从他们的主文件夹以外的任何其他地方使用 pdftk。例如。USB 驱动器、额外磁盘、共享网络驱动器。
(对不起,我不能作为评论回复,没有足够的声誉......)