Hinzufügen BufferedImage zu PDFBox-Dokument
In meinem aktuellen Projekt, ich versuche, um eine BufferedImage
zu einem PDFBox-Dokument. Mehr spezifisch, ich verwende ein Bild von einer JFreeChart
. Mein code sieht wie folgt aus:
public void exportToPDF(JFreeChart chart, String filePath){
PDDocument doc = null;
PDPage page = null;
PDXObjectImage ximage = null;
try {
doc = new PDDocument();
page = new PDPage();
doc.addPage(page);
PDPageContentStream content = new PDPageContentStream(doc, page);
BufferedImage image = chart.createBufferedImage(300, 300);
ximage = new PDJpeg(doc, image);
content.drawImage(ximage, 20, 20);
content.close();
} catch(IOException ie) {
}
doc.save(filePath);
doc.close();
}
Dokument wird erstellt, ich kann auch text hinzufügen, aber ich bekomme eine Fehlermeldung, die das Bild enthält nicht genügend Informationen haben, gezeigt zu werden.
Keine Ahnung, was ich falsch mache?
- Was ist der Fehler???
- Die Fehlermeldung erscheint in der generierten pdf-Datei, da hätte ich klar auf, die. Wenn ich die Datei öffnen, es dislays alle text, wie es sollte, aber anstelle des Bildes bekomme ich eine Meldung "Unzureichender Daten zum Bild anzeigen". Im mehr oder weniger grünen, wenn es um siplaying Bilder, also alle Ideen sind willkommen
- Das könnte diesen Fehler: issues.apache.org/jira/browse/PDFBOX-2026 Es wird behoben werden in 1.8.5. Oder laden Sie einen snapshot.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Danke für die Hilfe mich aus trashgod. Verbrachten die Letzte Nacht und ein paar Stunden heute seien irritiert über PipedIn/OutStreams. Cant figure it out. Aber ich habe es zu arbeiten. Stellt sich heraus, es war nicht sehr schwer überhaupt.
Bin ich sicher, dass dies getan werden kann, besser, aber es funktioniert.
Gibt es eine einfache Möglichkeit, fügen Sie ein JFreeChart in ein pdf mit pdfbox:
Ohne Strom 😉
Zwei Dinge zeichnen Sie aus:
Nicht schlucken Ausnahmen.
Verwenden
ChartUtilities
zu Rendern das Bild in einem geeigneten format, wie vorgeschlagen,hier.OutputStream
zu einemInputStream
verwenden piped-streams gezeigt here und die here.PNG
vJPG
Nachteil.