it-swarm.com.de

Warum sagt PDFTK, dass es keine Dateien finden kann, die genau dort sind?

Ich versuche, eine Reihe von PDFs in einem einzigen Dokument zusammenzustellen. ls zeigt an, dass sich die Dateien in dem Verzeichnis befinden, in dem ich mich befinde, und dass sie lesbar sind (-rw-r--r--). Aber wenn ich versuche, pdftk 2017.pdf cat output test.pdf Auszuführen, erhalte ich eine Fehlermeldung:

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.

Wenn ich diesem Vorgang weitere Dateien hinzufüge, wird für jede Datei nur der Fehler angezeigt.

Ich kann die PDFs über die Befehlszeile mv 2017.pdf foo.pdf Umbenennen und erhalte den gleichen Fehler. Error: Unexpected Exception in open_reader() Java.io.FileNotFoundException: foo.pdf (Permission denied)

Wenn ich versuche, eine nicht vorhandene Datei aufzurufen, z. pdftk 123.pdf cat output test.pdf Ich erhalte einen anderen Fehler:

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.

Sogar tail 2017.pdf Zeigt die letzten Zeilen von 2017.pdf:

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

Wenn ich die Datei sehen und mit tail lesen kann, warum kann pdftk sie dann nicht lesen?

9
Amanda

TL; DR

Die Verwaltung von Snaps-Zugriffsrechten scheint die Ursache des Problems zu sein.

Um dies zu lösen, können Sie entweder:

  • Machen Sie Ihre Arbeit aus Ihrem $ HOME-Ordner. Beachten Sie, dass Symlinks nicht funktionieren.
  • Installieren Sie pdftk von einer anderen Quelle als der Ihrer Distribution. Zum Beispiel, ppa:malteworld/ppa hat Version 3.0.0 von pdftk-Java.

Ursprüngliche Antwort

Ich habe das gleiche Problem. Ich habe es aus einem Ordner auf einem USB-Laufwerk gemacht. Und tatsächlich funktioniert dies aus einem Unterordner meines Home-Verzeichnisses.

Das verwirrte mich, als ich versuchte, es aus einem Unterordner unter/tmp heraus zu tun, und es funktionierte auch nicht (mit einem anderen Fehler, weniger ausführlich, "Fehler beim Öffnen PDF Datei"). Gleiches wenn Ich versuche es aus einem Unterordner auf einer sekundären Festplatte, die unter/mnt gemountet ist.

Ich vermute, es könnte mit Einschränkungen durch Schnappschüsse zusammenhängen (ich bin auf einem aktuellen Ubuntu 18.04.3). Aber ich habe sehr wenig Erfahrung mit Schnappschüssen, daher kann ich nicht weiter erforschen.

Wenn ja, wäre das ziemlich kaputt, da dies Ubuntu-Benutzer daran hindert, pdftk von einem anderen Ort als ihrem Home-Ordner aus zu verwenden. Z.B. ein USB-Laufwerk, eine zusätzliche Festplatte, ein freigegebenes Netzwerklaufwerk.

(Entschuldigung, ich konnte nicht als Kommentar antworten, nicht genug Ruf ...)

8
AxelVoitier

Snap scheint den Zugriff auf das Dateisystem einzuschränken.

Hat für mich funktioniert, als ich die Dateien nach $ HOME verschoben habe (nicht/tmp oder woanders)

1
Moritz