[OFFEN] Bild in Pdf einfügen mit ITextG Libary

J

JoEntwickler

Fortgeschrittenes Mitglied
5
Hallo,
ich habe eine App in der eine Pdf Datei generiert werden soll.

Der Header und der Footer wird automatisch hinzugefügt. In der IText Libary gibt es ja diese Pageevents.
Hier ist meine EndPage Methode und so füge ich dann einen Text als Footer hinzu.

public void onEndPage(PdfWriter writer, Document document) {
Rectangle rect = writer.getBoxSize("art");
ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER,
new Phrase("Mein Text"), rect.getRight() - 100, rect.getBottom(), 0);
}

Da das hier nicht so funktioniert wie man es normal macht frag ich mich wie man da jetzt ein Bild hinzufügt.
Kennt sich jemand besser mit solchen Pageevents in IText aus und kann mir da weiterhelfen?
Mein Bild ist in dem Drawable Ordner.

Liebe Grüße
JoEntwickler
 
Also ich habe es hinbekommen.
Das oder die gewünschten Bilder hab ich in den assets ordner gepackt.

Das Objekt Image habe ich als Klassenvariable gemacht.
In der Methode von meinem Event hab ich dann abgefragt ob das Objekt null ist, wenn ja wird es mit dem unteren Code geladen.
Einfach damit es nicht bei jedem Event eintritt extra geladen werden muss.
Damit habe ich das Bild dann geladen:

InputStream ims = resources.getAssets().open("meinBild.png");
Bitmap bmp = BitmapFactory.decodeStream(ims);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
image = Image.getInstance(stream.toByteArray());
image.scaleToFit(130, 130);
image.setAbsolutePosition(rect.getRight() - 110, rect.getBottom() - 20);

Mit document.add() funktioniert das bei solchen Pageevents irgendwie nicht.
Deshalb muss man auf das zweite übergebene Objekt PdfWriter zugreifen mit:
writer.getDirectContent().addImage(image);

Damit hat es bei mir funktioniert.

Liebe Grüße
Jo Entwickler
 

Ähnliche Themen

B
Antworten
6
Aufrufe
1.002
jogimuc
J
D
Antworten
23
Aufrufe
2.312
Data2006
D
B
Antworten
4
Aufrufe
406
bb321
B
Zurück
Oben Unten