【发布时间】:2020-06-15 14:04:00
【问题描述】:
我在这里放了一段c#和iText7 PDF的代码。我不知道为什么它不打印每张 3 行的 3 张纸,因为我在每组 3 行前面都有一个“AddNewPage”(只打印一页,每页 9 行)。你能帮助我吗。谢谢。
private void button1_Click(object sender, EventArgs e)
{
var writer = new PdfWriter(@"C:\PDFDir\TestPDF.pdf");
var pdf = new PdfDocument(writer);
var document = new Document(pdf);
Paragraph p = new Paragraph("");
document.SetMargins(6, 0, 0, 18); //T,R,B,L
pdf.AddNewPage(); //Page 1
p = new Paragraph("Line 1 page 1");
document.Add(p);
p = new Paragraph("Line 2 page 1");
document.Add(p);
p = new Paragraph("Line 3 page 1");
document.Add(p);
pdf.AddNewPage(); //Page 2 ?
p = new Paragraph("Line 1 page 2");
document.Add(p);
p = new Paragraph("Line 2 page 2");
document.Add(p);
p = new Paragraph("Line 3 page 2");
document.Add(p);
pdf.AddNewPage(); //Page 3 ?
p = new Paragraph("Line 1 page 3");
document.Add(p);
p = new Paragraph("Line 2 page 3");
document.Add(p);
p = new Paragraph("Line 3 page 3");
document.Add(p);
document.Close();
} //End of button1_Click
【问题讨论】:
-
要让
Document实例将之后添加的内容放到新页面上,您必须通过使用document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));告诉Document实例,而不是底层PdfDocument实例,见this answer。 -
我添加了行 'document.Add (new AreaBreak (iText.Layout.Properties.AreaBreakType.NEXT_PAGE));'替换之前的 'pdf.AddNewPage();'现在它可以正常工作了。谢谢。