1Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
4062
4062
EMPFEHLEN
-
08.08.08 16:00 #1
Hallo zusammen,
bin ziemlich
!
Versuche nun seid geraumer Zeit ein PDF das mittels Acrobat 9 Pro als Vorlage erzeugt wurde mit Daten zu füllen.
Dazu öffne ich die Vorlage mit iText:
Solch eine Vorlage besitzt ja eine sogenannte AcroForm welche wiederum ausCode :1 2 3 4 5 6 7
... PdfReader reader = new PdfReader("vorlagen/default.pdf"); FileOutputStream out = new FileOutputStream ("Dokumente/Doc"+getModel().getId()+".pdf"); PdfStamper stamper = new PdfStamper(reader, out); ...
AcroFields besteht. Die Felder fülle ich mit iText z.B. so:
Code :1 2 3 4
... AcroFields form = stamper.getAcroFields(); form.setField("author", getModel().getAuthor()); ...
bis hier hin alles super.
Das Problem!
In die Mitte des Dokuments möchte ich noch eine dynamisch erzeugte Tabelle einfügen
welche man leider nicht als AcroField in der Vorlage definieren kann
(erst recht nicht, weil sie dynamisch ist).
Nun kann ich mit iText leider nicht einfach eine PdfPTable in das Document adden!?
Funktioniert das überhaupt?
Falls ja, währe ich für einen kleine Codeschnipsel oder überhaupt einen Lösungsansatz
sehr dankbar
Gruß Lars
-
11.08.08 11:43 #2
Keiner dabei der sich mit iText auskennt?
Ich möchte doch nur wissen wie einem PdfStamper oder einem PdfContentByte, Elemnte wie z.B. Chunk oder PdfPTable positioniert hinzugefügt werden können.Gruß Lars
-
11.08.08 16:45 #3
So könnte eine mögl. Lösung aussehen:
Code :1 2 3 4 5 6 7 8 9 10 11 12
... private void setPreText(PdfContentByte cb) throws DocumentException { cb.setTextMatrix(getPagePosX(PAGE_BORDER_LEFT_CM), getInvertPagePosY(10.5f)); PdfPTable table = new PdfPTable(3); table.addCell(new Phrase("One")); table.addCell(new Phrase("Two")); table.addCell(new Phrase("Three")); table.writeSelectedRows(0, -1, getPagePosX(PAGE_BORDER_LEFT_CM), getInvertPagePosY(10.5f), cb); }...
Problem es wird eine exception geworfen:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: The table width must be greater than zero.
at com.lowagie.text.pdf.PdfPTable.writeSelectedRows(Unknown Source)
at com.lowagie.text.pdf.PdfPTable.writeSelectedRows(Unknown Source)
at com.lowagie.text.pdf.PdfPTable.writeSelectedRows(Unknown Source)Gruß Lars
-
11.08.08 18:13 #4
So, da hab ich es endlich geschafft!
Hier für alle die ein ähnliches Problem haben:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
... PdfPTable table = new PdfPTable(3); table.setTotalWidth(200); table.addCell(new Phrase("One")); table.addCell(new Phrase("Two")); table.addCell(new Phrase("Three")); PdfContentByte cb = getStamper().getOverContent(1); // 1 = erste Seite table.writeSelectedRows(0, -1, // 0 = ab Zeile 1; -1 = bis letzte Zeile getPagePosX(PAGE_BORDER_LEFT_CM), // X-Start-Punkt getInvertPagePosY(10.5f), //Y-Start-Punkt cb); ...Geändert von ThirdKeeper (10.11.09 um 09:31 Uhr)
Gruß Lars
Ähnliche Themen
-
Java und Pdf mit iText
Von vogella im Forum Java Technology NewsAntworten: 0Letzter Beitrag: 07.08.09, 06:49 -
Java + iText
Von peter53757 im Forum JavaAntworten: 1Letzter Beitrag: 02.12.08, 13:55 -
PDF erzeugen mit iText?
Von freek0815 im Forum JavaAntworten: 3Letzter Beitrag: 21.08.06, 16:01 -
String Table Resourcen hinzufügen
Von Rettig im Forum VisualStudio & MFCAntworten: 4Letzter Beitrag: 11.04.05, 11:26 -
SWT Table Daten bearbeiten, Zeilen hinzufügen
Von melko im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 17.08.04, 10:42





Zitieren
Login





