分页后的行间距(前导)会改变iTextSharp

时间:2017-11-27 14:52:37

标签: c# itext

我正在使用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中设置前导,但这没有帮助。 我做错了什么?

0 个答案:

没有答案