我的onEndPage方法上有两个单独的列文本。第一个ColumnText
正确放置,但第二个不会沿x轴移动。这是我的摘录。
///AddFirst ColumnText
Font bfont = new Font(Font.FontFamily.HELVETICA, 13, Font.BOLD);
cb.roundRectangle(100f, 1150f, 400f, 100f, 5f);
cb.stroke();
ColumnText btext = new ColumnText(cb);
btext.setSimpleColumn(110f, 1250f, 400f, 100f);
btext.addElement(new Paragraph("BRANCH: MYBRANCH", bfont));
btext.addElement(new Paragraph("ADDRESS: P.O Box 15524", bfont));
btext.addElement(new Paragraph("PHONE NUMBER: 0720000000/072000000", bfont));
btext.go();
cb.roundRectangle(650f, 1150f, 400f, 100f, 5f);
cb.stroke();
///Add Head office ColumnText
ColumnText htext = new ColumnText(cb);
htext.setSimpleColumn(850f, 1250f, 400f, 500f);//This wont position on x axis
htext.addElement(new Paragraph("HEAD OFFICE", bfont));
htext.addElement(new Paragraph("TEL: 0720000002/072000000", bfont));
htext.addElement(new Paragraph("MOBILE: 0720000000/072000000", bfont));
htext.addElement(new Paragraph("EMAIL: email@domain", bfont));
htext.addElement(new Paragraph("WEBSITE: https://website.com/", bfont));
htext.go();
我在这里想念什么。但是,如果我更改了850f
,则第二列文本应该可以在文档中的任意位置自由移动。
答案 0 :(得分:0)
您误解了ColumnText
方法setSimpleColumn
的第三个和第四个参数!
您似乎认为它们是矩形的宽度和高度,而第一个和第二个位置是矩形。
与第一个和第二个参数一样,第三个和第四个参数构成矩形角的坐标!
因此,通过更改850f
htext.setSimpleColumn(850f, 1250f, 400f, 500f)
一点,水平框仍然从x=400f
开始(第三个参数,第二个给定角的 x 坐标)。此外,您只向ColumnText
添加了相对较短的段落,因此除非更改了第一个参数,否则在更改框的水平端之后它们不会出现不同的折断。
因此,如果要更改ColumnText
框水平开始的位置,请更改 first 和 third 的 lower 参数值。
public void setSimpleColumn(final float llx, final float lly, final float urx, final float ury)