我将这两个字符串组合成Paragraph,
String str2="";
String str1="";
ColumnText ct = new ColumnText(cb);
ct.setSimpleColumn(36, 600, 600, 800);
ct.addElement(new Paragraph(str1 + str2));
int status1 = ct.go();
问题是我为str1和amp;获得相同的字体颜色STR2。
我希望str1和amp;的字体颜色和大小不同str2 ..
我如何在ColumnText / Paragraph上执行此操作?
有人可以帮助我...
答案 0 :(得分:1)
将文字组合成Paragraph
时,如下所示:
Paragraph p = new Paragraph("abc" + "def");
您隐式告诉iText应使用相同(默认)字体呈现"abc"
和"def"
。您可能知道,Paragraph
是Chunk
个对象的集合。在iText中,Chunk
就像文本的原子部分,因为Chunk
中的所有文本都具有相同的字体,字体大小,字体颜色等......
如果您要创建具有不同字体颜色的Paragraph
,则需要使用不同的Paragraph
对象撰写Chunk
。这显示在ColoredText示例中:
Font red = new Font(FontFamily.HELVETICA, 12, Font.NORMAL, BaseColor.RED);
Chunk redText = new Chunk("This text is red. ", red);
Font blue = new Font(FontFamily.HELVETICA, 12, Font.BOLD, BaseColor.BLUE);
Chunk blueText = new Chunk("This text is blue and bold. ", blue);
Font green = new Font(FontFamily.HELVETICA, 12, Font.ITALIC, BaseColor.GREEN);
Chunk greenText = new Chunk("This text is green and italic. ", green);
Paragraph p1 = new Paragraph(redText);
document.add(p1);
Paragraph p2 = new Paragraph();
p2.add(blueText);
p2.add(greenText);
document.add(p2);
在这个例子中,我们创建了两个段落。其中一个Chunk
为红色。另一个包含两个不同颜色的Chunk
。
在您的问题中,请参阅ColumnText
。下一个代码段在p1
上下文中使用p2
和ColumnText
:
ColumnText ct = new ColumnText(writer.getDirectContent());
ct.setSimpleColumn(new Rectangle(36, 600, 144, 760));
ct.addElement(p1);
ct.addElement(p2);
ct.go();
结果,段落被添加两次:一次被iText定位,一旦我们自己定位,使用Rectangle
定义坐标: