[英]How to make a different margin on the pages itext 7?
For example, on even pages, the indent is 100, on odd indentation - 150. page #1:例如,偶数页缩进为 100,奇数缩进为 150。第 1 页:
doc.setleftMargin(100);
doc.setleftMargin(100);
page #2:第2页:
doc.setleftMargin(150);
doc.setleftMargin(150);
page #3:第 3 页:
doc.setleftMargin(150);
doc.setleftMargin(150);
page #4:第 4 页:
doc.setleftMargin(100);
doc.setleftMargin(100);
This does not work:这不起作用:
for (int i = 1; i < 5; i++) {
if (n % 2==0)
doc.setLeftMargin(100);
else if(!(n%2==0))
doc.setLeftMargin(150);
doc.getPdfDocument().addNewPage();
doc.add(pLiga);
System.out.println(doc.getLeftMargin());
System.out.println(doc.getPdfDocument().getNumberOfPages());
n++;
System.out.println(n);
}
pLiga Added 5 times pLiga 增加了 5 次
You are mixing low-level manipulations ( doc.getPdfDocument().addNewPage()
) with high-level ones (eg adding elements to Document
).您将低级操作(
doc.getPdfDocument().addNewPage()
)与高级操作(例如向Document
添加元素)混合。 If you are using high-level API, you should try to stick with it as much as possible.如果您正在使用高级 API,则应尽量坚持使用它。 To go to a new page you can use
doc.add(new AreaBreak());
要转到新页面,您可以使用
doc.add(new AreaBreak());
. . Also be sure to set margins before actually adding any content to a new page.
还要确保在将任何内容实际添加到新页面之前设置边距。
Rewriting your code into something like following works as expected - margins are alternating from page to page:将您的代码重写为以下内容,按预期工作 - 页边距在页面之间交替:
int n = 0;
for (int i = 0; i < 5; i++) {
if (n % 2 == 0) {
doc.setLeftMargin(100);
} else {
doc.setLeftMargin(200);
}
// Make sure to set margins before adding elements to new page
if (i > 0) {
doc.add(new AreaBreak());
}
doc.add(new Paragraph("Hello"));
n++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.