Guten Tag Wissende.
auf Seite: https://javabeginners.de/Ein-_und_Ausgabe/PDF_anzeigen.php
habe ich folgendes Scrip heruntergeladen und den pdfPath angepasst! (diese Datei wird gefunden und auch in /tmp heruntergeladen)
Im Projekt eingebunden habe ich dann:
Die GUI (createGUI(SwingController controller)) öffnet das JFrame aber ohne Inhalt.
Dafür wird folgendes in der Konsole geworfen:
vorallem, wie kann ich das Problem lösen?
Oder gibt es bessere Möglichkeiten?
Für Ihre geschätzte Hilfe bin ich sehr Dankbar! 😃
PS:
In Eclipse selbst werden keine Warnungen und keine Fehler angezeigt.
auf Seite: https://javabeginners.de/Ein-_und_Ausgabe/PDF_anzeigen.php
habe ich folgendes Scrip heruntergeladen und den pdfPath angepasst! (diese Datei wird gefunden und auch in /tmp heruntergeladen)
Im Projekt eingebunden habe ich dann:
icepdf-core-6.1.2.jar
icepdf-viewer-6.2.2.jar
Java:
package showPDF;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ResourceBundle;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.icepdf.ri.common.SwingController;
import org.icepdf.ri.common.SwingViewBuilder;
import org.icepdf.ri.util.PropertiesManager;
public class PDFAnzeigen {
public PDFAnzeigen() {
// String pdfPath = loadPDF("https://javabeginners.de/Test.pdf");
String pdfPath = loadPDF("https://www.edv-rueegg.ch/DATEIEN/Info-zu-Rollrasen.pdf");
if (pdfPath == null) {
System.err
.println("Datei kann nicht geladen werden oder ist keine PDF-Datei.");
System.exit(1);
}
SwingController controller = new SwingController();
createGUI(controller);
controller.openDocument(pdfPath);
}
public static void main(String[] args) {
new PDFAnzeigen();
}
public String loadPDF(String adresse) {
if (!adresse.toLowerCase().endsWith("pdf"))
return null;
String fileName = adresse.substring(adresse.lastIndexOf("/") + 1,
adresse.lastIndexOf("."));
String suffix = adresse.substring(adresse.lastIndexOf("."),
adresse.length());
File temp = null;
try (InputStream in = new URL(adresse).openStream()) {
temp = File.createTempFile(fileName, suffix);
temp.deleteOnExit();
Files.copy(in, Paths.get(temp.toURI()),
StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
e.printStackTrace();
}
return temp.getAbsolutePath();
}
public static void createGUI(SwingController controller) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setLocationRelativeTo(null);
frame.setTitle("PDF anzeigen");
frame.setVisible(true);
PropertiesManager properties = new PropertiesManager(
System.getProperties(),
ResourceBundle
.getBundle(PropertiesManager.DEFAULT_MESSAGE_BUNDLE));
properties.set(PropertiesManager.PROPERTY_DEFAULT_ZOOM_LEVEL, "1.5");
properties.set(PropertiesManager.PROPERTY_VIEWPREF_HIDETOOLBAR, "true");
// nur für Event-Handling notwendig
// controller.setIsEmbeddedComponent(true);
SwingViewBuilder builder = new SwingViewBuilder(controller, properties);
JPanel viewerPanel = builder.buildViewerPanel();
frame.getContentPane().add(viewerPanel);
}
}
Dafür wird folgendes in der Konsole geworfen:
Weiss jemand warum dies Fehlermeldungen ausgeworfen werden undFeb. 25, 2026 2:16:35 PM org.icepdf.core.pobjects.Document <clinit>
WARNING: PDF write support was not found on the class path
Exception in thread "main" java.lang.NoClassDefFoundError: org/icepdf/core/pobjects/EmbeddedFileStream
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3167)
at java.base/java.lang.Class.getDeclaredMethod(Class.java:2474)
at java.desktop/java.awt.Component.isCoalesceEventsOverriden(Component.java:6321)
at java.desktop/java.awt.Component$3.run(Component.java:6275)
at java.desktop/java.awt.Component$3.run(Component.java:6273)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at java.desktop/java.awt.Component.checkCoalescing(Component.java:6272)
at java.desktop/java.awt.Component.<init>(Component.java:6241)
at java.desktop/java.awt.Container.<init>(Container.java:296)
at java.desktop/javax.swing.JComponent.<init>(JComponent.java:598)
at java.desktop/javax.swing.JPanel.<init>(JPanel.java:82)
at java.desktop/javax.swing.JPanel.<init>(JPanel.java:109)
at java.desktop/javax.swing.JPanel.<init>(JPanel.java:117)
at org.icepdf.ri.common.utility.attachment.AttachmentPanel.<init>(AttachmentPanel.java:55)
at org.icepdf.ri.common.SwingViewBuilder.buildAttachmentPanle(SwingViewBuilder.java:1842)
at org.icepdf.ri.common.SwingViewBuilder.buildUtilityTabbedPane(SwingViewBuilder.java:1754)
at org.icepdf.ri.common.SwingViewBuilder.buildUtilityAndDocumentSplitPane(SwingViewBuilder.java:1710)
at org.icepdf.ri.common.SwingViewBuilder.buildContents(SwingViewBuilder.java:486)
at org.icepdf.ri.common.SwingViewBuilder.buildViewerPanel(SwingViewBuilder.java:469)
at showPDF.PDFAnzeigen.createGUI(PDFAnzeigen.java:75)
at showPDF.PDFAnzeigen.<init>(PDFAnzeigen.java:30)
at showPDF.PDFAnzeigen.main(PDFAnzeigen.java:35)
Caused by: java.lang.ClassNotFoundException: org.icepdf.core.pobjects.EmbeddedFileStream
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 23 more
vorallem, wie kann ich das Problem lösen?
Oder gibt es bessere Möglichkeiten?
Für Ihre geschätzte Hilfe bin ich sehr Dankbar! 😃
PS:
In Eclipse selbst werden keine Warnungen und keine Fehler angezeigt.