我正在使用iTextSharp 5.0.5创建动态PDF(asp.net c#),而且在创建新页面时,我遇到了插入额外空间的问题。第一页看起来不错,但在任何其他页面上,额外的空格显示在顶部。
我做了一个小例子,在列表中为每篇文章插入一个带有徽标和标题的新页面。如果我只插入徽标或仅标题它可以正常工作,但如果我尝试插入两个,那么会有一个额外的空间来自某个地方。任何人都对我做错了什么有任何想法?
public static void CreatePDF(List<Item> Articles)
{
Document document = new Document(PageSize.A4, 35, 35, 35, 35);
MemoryStream memoryStream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, memoryStream);
document.Open();
for (int i = 0; i < Articles.Count; i++)
{
if (i > 0)
{
document.NewPage();
}
Image logo = Image.GetInstance(@"C:\logo.gif");
document.Add(logo);
Paragraph title = new Paragraph("test title", new Font(Font.FontFamily.HELVETICA, 20, Font.NORMAL, CMYKColor.BLACK));
document.Add(title);
}
document.Close();
SendPDFResponse(memoryStream, "myfile.pdf");
}
谢谢,
Annelie
答案 0 :(得分:3)
第1页后面的页面上没有多余空间。问题是第1页上的空间较少。 不,这不是开玩笑。问题是由“前导”(即两条线之间的空间)引起的。前导的初始值为0.向文档添加内容时,此值将更改为不同于0的值。
您在整个文档中使用的领先优势是什么?您应该使用PdfWriter中的方法setInitialLeading()将其设置为初始前导。
答案 1 :(得分:0)
这听起来像个错误。我怀疑一些相对较新的布局方面没有在页面之间正确重置。
你介意将其交叉发布到itext-questions mailing list吗?