TestDoc.java\r\n
package test;\r\n\r\nimport com.itextpdf.text.BaseColor;\r\nimport com.itextpdf.text.Document;\r\nimport com.itextpdf.text.DocumentException;\r\nimport com.itextpdf.text.Element;\r\nimport com.itextpdf.text.Font;\r\nimport com.itextpdf.text.PageSize;\r\nimport com.itextpdf.text.Phrase;\r\nimport com.itextpdf.text.pdf.ColumnText;\r\nimport com.itextpdf.text.pdf.PdfContentByte;\r\nimport com.itextpdf.text.pdf.PdfWriter;\r\nimport java.io.FileNotFoundException;\r\nimport java.io.FileOutputStream;\r\n\r\npublic class TestDoc {\r\n\r\n private static final org.apache.log4j.Logger LOG4J = org.apache.log4j.Logger.getRootLogger();\r\n\r\n public void createPdf() {\r\n Document document = new Document(PageSize.A4);\r\n try {\r\n PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("/tmp/test.pdf"));\r\n writer.setPageEvent(new TestHeader());\r\n document.open();\r\n PdfContentByte canvas = writer.getDirectContent();\r\n ColumnText testColumn = new ColumnText(canvas);\r\n Phrase testPhrase = new Phrase();\r\n testPhrase.setFont(new Font(Font.FontFamily.HELVETICA, 18, Font.NORMAL, BaseColor.DARK_GRAY));\r\n testPhrase.add("testTextDoc"); // only after setFont(), setFont() has effect!!!\r\n testColumn.setSimpleColumn(testPhrase,\r\n 100, PageSize.A4.getHeight() - 200,\r\n 200, PageSize.A4.getHeight() - 160,\r\n 18, Element.ALIGN_LEFT);\r\n testColumn.go();\r\n\r\n document.close();\r\n } catch (DocumentException | FileNotFoundException ex) {\r\n LOG4J.error(ex.getMessage());\r\n }\r\n }\r\n}\r\n
\r\n\r\nTestHeader.java\r\n
package test;\r\n\r\nimport com.itextpdf.text.BaseColor;\r\nimport com.itextpdf.text.Document;\r\nimport com.itextpdf.text.DocumentException;\r\nimport com.itextpdf.text.Element;\r\nimport com.itextpdf.text.Font;\r\nimport com.itextpdf.text.PageSize;\r\nimport com.itextpdf.text.Phrase;\r\nimport com.itextpdf.text.pdf.ColumnText;\r\nimport com.itextpdf.text.pdf.PdfContentByte;\r\nimport com.itextpdf.text.pdf.PdfPageEventHelper;\r\nimport com.itextpdf.text.pdf.PdfWriter;\r\n\r\npublic class TestHeader extends PdfPageEventHelper {\r\n\r\n private static final org.apache.log4j.Logger LOG4J = org.apache.log4j.Logger.getRootLogger();\r\n\r\n @Override\r\n public void onStartPage(PdfWriter writer, Document document) {\r\n PdfContentByte canvas = writer.getDirectContent();\r\n ColumnText testColumn = new ColumnText(canvas);\r\n Phrase testPhrase = new Phrase();\r\n testPhrase.setFont(new Font(Font.FontFamily.HELVETICA, 6, Font.NORMAL, BaseColor.DARK_GRAY));\r\n testPhrase.add("testTextHeader"); // only after setFont(), setFont() has effect!!!\r\n testColumn.setSimpleColumn(testPhrase,\r\n 100, PageSize.A4.getHeight() - 100,\r\n 200, PageSize.A4.getHeight() - 60,\r\n 6, Element.ALIGN_LEFT);\r\n\r\n try {\r\n testColumn.go();\r\n } catch (DocumentException ex) {\r\n LOG4J.error(ex.getMessage());\r\n }\r\n }\r\n}\r\n
\r\n\r\nEs funzt wie in Grafiklibraries. Da setzt man die Farbe und kann anschließend etwas machen, das dann in der zuletzt gesetzten Farbe erstellt wird.