PDF over unter Linux - Feedback

    • PDF over unter Linux - Feedback

      Hallo,

      Ich wollte in meine Rechnungsverwaltung auch eine halb-automatische PDF-Signatur hinzufügen.
      Ich habe PDF-over unter Linux zum Laufen gebracht und bin nun recht glücklich damit, möchte aber meinen Weg hier für andere dokumentieren. (Und vielleicht liest jemand, der die Probleme dauerhaft beheben kann, mit):

      Die Installation mit "javaws webstart.buergerkarte.at/pdf-over/pdf-over.jnlp" lief problemlos und hat alles schön nach /usr/local/PDF-Over/ entpackt. Beim Starten gibt es aber das erste Problem:

      Quellcode

      1. log4j:WARN No appenders could be found for logger (at.asit.pdfover.gui.Main).
      2. log4j:WARN Please initialize the log4j system properly.
      3. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
      4. Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/Device
      5. at at.asit.pdfover.gui.utils.Messages.getDefaultLocale(Messages.java)
      6. at at.asit.pdfover.gui.utils.Messages.<clinit>(Messages.java)
      7. at at.asit.pdfover.gui.Main.main(Main.java)
      8. Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.graphics.Device
      9. at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
      10. at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
      11. at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
      12. ... 3 more
      Alles anzeigen





      Es fehlt die swt library, also habe ich das naheliegenste gemacht und die lib-swt/swt-linux-64.jar nach lib kopiert und erstaunlicherweise funktioniert das.



      Nach einem "Fehler beim Laden der SWT-Bibliothek" popup, erscheint die GUI. Doch nach dem Auswählen der Datei passiert nichts:

      Quellcode

      1. log4j:WARN No appenders could be found for logger (at.asit.pdfover.gui.Main).
      2. log4j:WARN Please initialize the log4j system properly.
      3. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
      4. Exception in thread "main" org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NoClassDefFoundError: javax/activation/DataSource)
      5. at org.eclipse.swt.SWT.error(Unknown Source)
      6. at org.eclipse.swt.SWT.error(Unknown Source)
      7. at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
      8. at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
      9. at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
      10. at at.asit.pdfover.gui.workflow.StateMachineImpl.start(StateMachineImpl.java)
      11. at at.asit.pdfover.gui.Main.main(Main.java)
      12. Caused by: java.lang.NoClassDefFoundError: javax/activation/DataSource
      13. at at.asit.pdfover.signer.pdfas.PdfAs4SignerFactory.createSigner(PdfAs4SignerFactory.java)
      14. at at.asit.pdfover.signator.Signator.getSigner(Signator.java)
      15. at at.asit.pdfover.gui.workflow.PDFSignerImpl.getPDFSigner(PDFSignerImpl.java)
      16. at at.asit.pdfover.gui.workflow.states.PositioningState.getPositioningComposite(PositioningState.java)
      17. at at.asit.pdfover.gui.workflow.states.PositioningState.run(PositioningState.java)
      18. at at.asit.pdfover.gui.workflow.StateMachineImpl.update(StateMachineImpl.java)
      19. at at.asit.pdfover.gui.workflow.StateMachineImpl$1.run(StateMachineImpl.java)
      20. at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
      21. ... 5 more
      22. Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
      23. at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
      24. at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
      25. at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
      26. ... 13 more
      Alles anzeigen

      Anscheinend ist das Programm wohl nicht mit Java 9 kompatibel.

      Quellcode

      1. ➜ /usr/local/PDF-Over java -version
      2. openjdk version "9.0.4"
      3. OpenJDK Runtime Environment (build 9.0.4+12-Debian-2)
      4. OpenJDK 64-Bit Server VM (build 9.0.4+12-Debian-2, mixed mode)


      Zum Glück habe ich noch OpenJDK-8 installiert und damit funktioniert alles perfekt:


      Quellcode

      1. /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /usr/local/PDF-Over/lib/pdf-over-gui-4.1.16.jar -i ~/tmp/Test.pdf -o ~/tmp/signiert.pdf -b LOCAL -a -s



      Ich hoffe, dass das weiterhilft, falls jemand dieselben Probleme haben sollte.

      Spannenderweise stürzt das Programm immer noch ab, aber erst nachdem die PDF gespeichert wurde, womit es mich nicht wirklich stört.


      Quellcode

      1. Exception in thread "main" org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed)
      2. at org.eclipse.swt.SWT.error(Unknown Source)
      3. at org.eclipse.swt.SWT.error(Unknown Source)
      4. at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
      5. at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
      6. at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
      7. at at.asit.pdfover.gui.workflow.StateMachineImpl.start(StateMachineImpl.java)
      8. at at.asit.pdfover.gui.Main.main(Main.java)
      9. Caused by: org.eclipse.swt.SWTException: Widget is disposed
      10. at org.eclipse.swt.SWT.error(Unknown Source)
      11. at org.eclipse.swt.SWT.error(Unknown Source)
      12. at org.eclipse.swt.SWT.error(Unknown Source)
      13. at org.eclipse.swt.widgets.Widget.error(Unknown Source)
      14. at org.eclipse.swt.widgets.Widget.checkWidget(Unknown Source)
      15. at org.eclipse.swt.widgets.Dialog.checkParent(Unknown Source)
      16. at org.eclipse.swt.widgets.Dialog.<init>(Unknown Source)
      17. at org.eclipse.swt.widgets.MessageBox.<init>(Unknown Source)
      18. at at.asit.pdfover.gui.controls.Dialog.initialize(Dialog.java)
      19. at at.asit.pdfover.gui.controls.Dialog.<init>(Dialog.java)
      20. at at.asit.pdfover.gui.controls.ErrorDialog.<init>(ErrorDialog.java)
      21. at at.asit.pdfover.gui.workflow.StateMachineImpl.update(StateMachineImpl.java)
      22. at at.asit.pdfover.gui.workflow.StateMachineImpl$1.run(StateMachineImpl.java)
      23. at org.eclipse.swt.widgets.RunnableLock.run(Unknown Source)
      24. ... 5 more
      Alles anzeigen
    • Naja - in den letzten Jahren hat das universelle Setup per jnlp auf Windows und Linux bestens funktioniert, scheint jetzt aber entfallen zu sein (oder ich bin zu doof).

      Unter Windows bin ich jetzt gezwungen, den MSI-Installer zu verwenden - Die Standard-Installation per MSI knallt mir die Daten in %Benutzerprofil%\AppData\Roaming ohne Unterverzeichnis pdf-over - das ist auch nicht schoen - obwohl an sich voreingestellt in Programme(x86)/PDF-Over installiert haette werden sollen, was aber ohne Fehler/Warnung passiert...

      Irgendwie is grad alles doof.