iText font with effect

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.