@@ -42,17 +42,25 @@ This file is part of the iText (R) project.
42
42
*/
43
43
package com .itextpdf .layout .renderer ;
44
44
45
+ import com .itextpdf .io .LogMessageConstant ;
45
46
import com .itextpdf .kernel .geom .Rectangle ;
46
47
import com .itextpdf .kernel .pdf .ByteBufferOutputStream ;
47
48
import com .itextpdf .kernel .pdf .PdfDocument ;
48
49
import com .itextpdf .kernel .pdf .PdfWriter ;
49
50
import com .itextpdf .layout .Document ;
51
+ import com .itextpdf .layout .element .Paragraph ;
50
52
import com .itextpdf .layout .element .Text ;
53
+ import com .itextpdf .layout .font .FontProvider ;
51
54
import com .itextpdf .layout .layout .LayoutArea ;
52
55
import com .itextpdf .layout .layout .LayoutContext ;
56
+ import com .itextpdf .layout .layout .LayoutPosition ;
53
57
import com .itextpdf .layout .layout .LayoutResult ;
58
+ import com .itextpdf .layout .property .Property ;
54
59
import com .itextpdf .test .ExtendedITextTest ;
60
+ import com .itextpdf .test .annotations .LogMessage ;
61
+ import com .itextpdf .test .annotations .LogMessages ;
55
62
import com .itextpdf .test .annotations .type .UnitTest ;
63
+
56
64
import org .junit .Assert ;
57
65
import org .junit .Test ;
58
66
import org .junit .experimental .categories .Category ;
@@ -84,4 +92,42 @@ public void nextRendererTest() {
84
92
Assert .assertEquals (result1 .getOccupiedArea (), result2 .getOccupiedArea ());
85
93
}
86
94
95
+ @ Test
96
+ @ LogMessages (messages = {
97
+ @ LogMessage (messageTemplate = LogMessageConstant .FONT_PROPERTY_MUST_BE_PDF_FONT_OBJECT )
98
+ })
99
+ public void setTextException () {
100
+ final String val = "other text" ;
101
+ final String fontName = "Helvetica" ;
102
+ TextRenderer rend = (TextRenderer ) new Text ("basic text" ).getRenderer ();
103
+ FontProvider fp = new FontProvider ();
104
+ fp .addFont (fontName );
105
+ rend .setProperty (Property .FONT_PROVIDER , fp );
106
+ rend .setProperty (Property .FONT , fontName );
107
+ rend .setText (val );
108
+ Assert .assertEquals (val , rend .getText ().toString ());
109
+ }
110
+
111
+ /**
112
+ * This test assumes that absolute positioning for {@link Text} elements is
113
+ * not supported. Adding this support is the subject of DEVSIX-1393.
114
+ */
115
+ @ Test
116
+ @ LogMessages (messages = {
117
+ @ LogMessage (messageTemplate = LogMessageConstant .FONT_PROPERTY_MUST_BE_PDF_FONT_OBJECT )
118
+ })
119
+ public void setFontAsText () {
120
+ PdfDocument pdfDoc = new PdfDocument (new PdfWriter (new ByteBufferOutputStream ()));
121
+ pdfDoc .addNewPage ();
122
+ Document doc = new Document (pdfDoc );
123
+ Text txt = new Text ("text" );
124
+ txt .setProperty (Property .POSITION , LayoutPosition .ABSOLUTE );
125
+ txt .setProperty (Property .TOP , 5f );
126
+ FontProvider fp = new FontProvider ();
127
+ fp .addFont ("Helvetica" );
128
+ txt .setProperty (Property .FONT_PROVIDER , fp );
129
+ txt .setFont ("Helvetica" );
130
+ doc .add (new Paragraph ().add (txt ));
131
+ doc .close ();
132
+ }
87
133
}
0 commit comments