我正在使用iTextSharp c#创建一个pdf,并且当一段文本转到新页面时遇到问题。 以下工作正常,例如第2节,将运行到下一页。
private Font _smallFont = new Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
private Font _smallBoldFont = new Font(iTextSharp.text.Font.FontFamily.HELVETICA, 10, iTextSharp.text.Font.BOLD, BaseColor.BLACK);
AddParagraph(doc, Element.ALIGN_LEFT, _smallBoldFont, new Paragraph("\nSection 1\n"));
AddParagraph(doc, Element.ALIGN_LEFT, _smallFont, new Paragraph(textBox2.Text));
AddParagraph(doc, Element.ALIGN_LEFT, _smallBoldFont, new Paragraph("\nSection 2\n"));
AddParagraph(doc, Element.ALIGN_LEFT, _smallFont, new Paragraph(textBox3.Text));
在over-ridden base.OnStartPage中,我添加了徽标和标题文本。
Image logoImage = Image.GetInstance(appPath + "\\logo.jpg");
logoImage.ScaleAbsolute(newWidth: 141f, newHeight: 65f);
logoImage.Alignment = Element.ALIGN_CENTER;
document.Add(logoImage);
var headerText = "\nReport Header " + "\n";
Paragraph subText = new Paragraph(headerText, new Font(iTextSharp.text.Font.FontFamily.HELVETICA, 12, iTextSharp.text.Font.BOLD, BaseColor.BLACK));
document.Add(subText);
cb.AddTemplate(templateH, pageSize.GetLeft(document.LeftMargin), pageSize.GetTop(document.TopMargin - 5));
除了行间距增加到大约1.5(默认值?)直到新的AddParagraph之外,这是有效的。即使标题文本的字体和大小相同,也会发生这种情况。我有一个非常脏的解决方法,我在标题中添加第二行,字体大小为Helvetica 8.这确保了与前一页相同的前导。为什么8我不知道,因为这些部分是Helvetica 10.我尝试在AddParagraph中设置前导,但这没有帮助。 我做错了什么?