Einen schönen Sonntag alle miteinander,
ich hoffe, dass mir jemand bei meinem aktuellen Problem, ein JTable in eine .pdf-Datei mithilfe von "iText" umzuwandeln und zu abzuspeichern helfen kann. Die Übergabe der Table in die .pdf-Datei funktioniert soweit problemlos und wird auch korrekt dargestellt - jedoch nur solange, wie die Datei in den Programmordner geschrieben wird.
Füge ich einen JFileChooser hinzu, speichert er die Datei zwar am gewünschten Ort ab, gibt mir jedoch die Exception aus: "Das System kann den angegebenen Pfad nicht finden."
Öffne ich .pdf-Datei anschließend, gibt mir mein PDF-Reader die Meldung aus, dass die Datei aufgrund von Beschädigungen nicht angezeigt werden kann.
Ich vermute, dass der Fehler bei mir im Bereich des JFileChoosers liegt. Kann mir da jemand vielleicht helfen?
Bei meinen anderen JFileChooser-Abschnitten im Code habe ich bislang immer den BufferedWriter genutzt. Hier kriege ich jedoch die Meldung, dass dieser nicht mit dem Typ 'Document' kompatibel ist. Gibt es hierzu ein Equivalent, oder muss ich diesem Typ völlig anders vorgehen.
Vielen Dank und mit freundlichem Gruß
StepByStepButSlow
ich hoffe, dass mir jemand bei meinem aktuellen Problem, ein JTable in eine .pdf-Datei mithilfe von "iText" umzuwandeln und zu abzuspeichern helfen kann. Die Übergabe der Table in die .pdf-Datei funktioniert soweit problemlos und wird auch korrekt dargestellt - jedoch nur solange, wie die Datei in den Programmordner geschrieben wird.
Füge ich einen JFileChooser hinzu, speichert er die Datei zwar am gewünschten Ort ab, gibt mir jedoch die Exception aus: "Das System kann den angegebenen Pfad nicht finden."
Öffne ich .pdf-Datei anschließend, gibt mir mein PDF-Reader die Meldung aus, dass die Datei aufgrund von Beschädigungen nicht angezeigt werden kann.
Ich vermute, dass der Fehler bei mir im Bereich des JFileChoosers liegt. Kann mir da jemand vielleicht helfen?
Java:
public void actionPerformed(ActionEvent arg0) {
JFileChooser f = new JFileChooser();
f.setDialogTitle("Speichern unter");
FileNameExtensionFilter plainfilter = new FileNameExtensionFilter("Plaintext: .pdf", "pdf");
FileNameExtensionFilter markUpfilter = new FileNameExtensionFilter("Markup: .pdf", "pdf");
f.removeChoosableFileFilter(f.getAcceptAllFileFilter());
f.setFileFilter(plainfilter);
f.setFileFilter(markUpfilter);
int result = f.showSaveDialog(null);
if (result == JFileChooser.APPROVE_OPTION) {
File fi = f.getSelectedFile();
if (fi.exists()) {
JOptionPane.showMessageDialog(null, "Die Datei existiert bereits!");
} else {
try {
Document doc = new Document();
PdfWriter.getInstance(doc, new FileOutputStream(new File(f.getSelectedFile(), "Dateiname.pdf")));
doc.open();
PdfPTable pdfTable = new PdfPTable(tbl_Export_Micro.getColumnCount());
// adding table headers
for (int i = 0; i < tbl_Export_Micro.getColumnCount(); i++) {
pdfTable.addCell(tbl_Export_Micro.getColumnName(i));
}
// extracting data from jtable and inserting it to pdfptable
for (int rows = 0; rows < tbl_Export_Micro.getRowCount() - 1; rows++) {
for (int cols = 0; cols < tbl_Export_Micro.getColumnCount(); cols++) {
pdfTable.addCell(tbl_Export_Micro.getModel().getValueAt(rows, cols).toString());
}
}
doc.add(pdfTable);
doc.close();
} catch (DocumentException ex) {
ex.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
}
Bei meinen anderen JFileChooser-Abschnitten im Code habe ich bislang immer den BufferedWriter genutzt. Hier kriege ich jedoch die Meldung, dass dieser nicht mit dem Typ 'Document' kompatibel ist. Gibt es hierzu ein Equivalent, oder muss ich diesem Typ völlig anders vorgehen.
Vielen Dank und mit freundlichem Gruß
StepByStepButSlow