如何在 itext 7 页面上设置不同的页边距?
How to make a different margin on the pages itext 7?
例如,在偶数页上,缩进为 100,在奇数页上缩进 - 150。
第 1 页:
doc.setleftMargin(100);
第 2 页:
doc.setleftMargin(150);
第 3 页:
doc.setleftMargin(150);
第 4 页:
doc.setleftMargin(100);
这不起作用:
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 加5次
您将低级操作 (doc.getPdfDocument().addNewPage()
) 与高级操作混合在一起(例如,向 Document
添加元素)。如果你使用的是高级API,你应该尽量坚持使用。要转到新页面,您可以使用 doc.add(new AreaBreak());
。还要确保在实际向新页面添加任何内容之前设置边距。
将您的代码重写为如下内容,按预期工作 - 页边距在页面之间交替:
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++;
}
例如,在偶数页上,缩进为 100,在奇数页上缩进 - 150。 第 1 页:
doc.setleftMargin(100);
第 2 页:
doc.setleftMargin(150);
第 3 页:
doc.setleftMargin(150);
第 4 页:
doc.setleftMargin(100);
这不起作用:
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 加5次
您将低级操作 (doc.getPdfDocument().addNewPage()
) 与高级操作混合在一起(例如,向 Document
添加元素)。如果你使用的是高级API,你应该尽量坚持使用。要转到新页面,您可以使用 doc.add(new AreaBreak());
。还要确保在实际向新页面添加任何内容之前设置边距。
将您的代码重写为如下内容,按预期工作 - 页边距在页面之间交替:
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++;
}