Java iText: The document has no pages.

Kitterich

Mitglied
Hallo zusammen,

ich habe folgendes Problem zu lösen:

Ich habe einen JFrame, von dessen Container ich die Inhalte der Komponenten (JPanel, JTextArea, etc.) mittels einer rekursiven Methode herauslesen und in eine PDF packen möchte.
Um diese Idee umzusetzen, habe ich nachfolgendes Arrangement zusammengehauen:
Java:
 public Document componentOfContainer(Container c, Document document) {

        try {
            PdfWriter.getInstance(document,
                    new FileOutputStream("C:\\Users\\Desktop\\PDFJava.pdf"));
            document.open();

            for (Component components : c.getComponents()) {

                if (components instanceof Container) {
                    componentOfContainer((Container) components, document);
                }

                if (components instanceof JTextField) {
                    String x = ((JTextField) components).getText();
                    document.add(new Paragraph(x));

                } else if (components instanceof JComboBox) {
                    String x = ((JComboBox) components).getSelectedItem().toString();
                    document.add(new Paragraph(x));

                } else if (components instanceof JLabel) {
                    String x = ((JLabel) components).getText();
                    document.add(new Paragraph(x));
                }
            }

            }catch (DocumentException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        return this.document;
    }


    public static void main(Container c) {
        WritePdfCopy writePdfCopy = new WritePdfCopy();

        writePdfCopy.componentOfContainer(c, writePdfCopy.document).close();

    }
Es erscheint folgende Fehlermeldung:
Java:
Exception in thread "AWT-EventQueue-0" ExceptionConverter: java.io.IOException: The document has no pages.
    at com.itextpdf.text.pdf.PdfPages.writePageTree(PdfPages.java:113)
    at com.itextpdf.text.pdf.PdfWriter.close(PdfWriter.java:1217)
    at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:787)
    at com.itextpdf.text.Document.close(Document.java:420)
    at WritePdfCopy.main(WritePdfCopy.java:95)
usw. ...

Ich habe den Debugger laufen lassen und konnte dort erkennen, dass der PDF sehr wohl Paragraphs hinzugefügt werden. Scheinbar werden diese aber wieder überschrieben. Überhaupt muss ich gestehen, dass ich die Laufzeit der for-Schleife
Java:
for (Component components : c.getComponents())
nicht so recht verstanden habe. Zumal die Methode auf
Java:
return this.document;
springt, dann aber weiterläuft - ich hätte hier erwartet, dass Feierabend ist und die Methode beendet ist.

Lange Rede, kurzer Sinn:

Ich würde gerne den "document has no pages" Fehler verstehen und beseitigen lernen.

Danke und Gruß vorab

Stephan
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Sorry aber das ist echt krank. Wer kommt auf so eine Idee?

Wer hat denn die Komponenten befüllt? Der Weihnachtsmann? Du Must doch irgendwo einen Controller haben der das UI mit Hilfe eines Models befüllt hat. Sprich du hast irgendwo in einem Modell die Daten und kannst nun einfach einen Controller schreiben der das PDF daraus erstellt.

Das was du da oben machst hat jedenfalls mit strukturiertem programmieren mal so gar nichts zu tun...
 

Kitterich

Mitglied
Sportfreund,
ich habe dich nicht gebeten über meine Motivation zu urteilen oder über den Sinn und Zweck der Methodik, sondern eine fachliche Frage gestellt, die an alle Personen gerichtet ist, die Willens sind, sich konstruktiv dazu zu äußern.
Da du diesem Kreise mehr als offensichtlich nicht beiwohnst, erspare dir solch dumme Kommentare und pflege sie dort ein, wo sie gebraucht werden.
 

Thallius

Top Contributor
Ich glaube nicht, dass du irgendwelche Rechte hast mir hier das Wort zu verbieten.

Und das du nicht programmieren kannst da kann ich ja nichts für. Aber ich werde gerade deshalb so etwas hier aufdecken damit andere die mittels suche auf so einen Thread stoßen, sehen, dass das Humbug ist was da gemacht wurde....

Ich würde an deiner Stelle an meiner Kritikfähigkeit arbeiten.
 

Kitterich

Mitglied
Und wenn man keine Argumente mehr hat, dann kommt die große Rechtschreibkeule.....
Sollte es sich hier gar um einen Erfahrungswert handeln, so wäre es sinnvoll, dass du einmal daran arbeitest.

Da hier in meinen Augen keine Diskussion im Gange ist, verstehe ich den Einwand fehlender Argumente ohnehin nicht.

Damit du aber nicht ganz dumm aus dieser Welt scheidest, so sei dir der folgende Text -und damit meine Motivation- ans Herz gelegt:

Herr X erhält ein Code-Snippet zu einem JFrame. Hierin befinden sich einige Dutzend Komponenten, die recht zusammenhangslos und unstrukturiert formuliert und eingebaut wurden. Um nicht jede Komponente einzeln ansprechen zu müssen und sich einige Zeilen Code zu sparen, hat Herr X die fixe Idee entwickelt, mittels einer rekursiven Methode den Inhalt aus den oben zitierten Komponenten zu ziehen.
 

Thallius

Top Contributor
Was klar darlegt, dass Herr X keine Ahnung von Design Pattern hat und Fusch mit neuen Fusch verschlimmbessert. Das habe ich aber schon im ersten Post geschrieben, was du dort schon nicht akzeptieren wolltest. Wir drehen uns also im Kreis...
 

Kitterich

Mitglied
Ach Junge, du checkst es einfach nicht.
Im Prinzip hast du es ja selbst geschrieben: Ein Design Pattern, so wie es dir möglicherweise vorschwebt, ist in der Tat nützlich - wenn wir es mit einem absehbaren und wiederkehrenden Muster zu tun haben. Ist hier nicht so, fertig, aus, basta.
Lege bitte deine schwarz/weiß-Denkweise ab, schau über den Tellerrand und KAUF DIR ENDLICH MAL EINEN DUDEN.

Ich habe fertig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
N iText PDF Fehler, java.lang.ClassNotFoundException: com.lowagie.text.Phrase Java Basics - Anfänger-Themen 7
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3
Z Operatoren Java Applikation Java Basics - Anfänger-Themen 8
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
sasnitzer java augensumme von zwei würfeln ist 1 Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben