iTextSharp 4.1.6如何实现页眉内logo与文本并排显示、避免重叠?
iTextSharp 4.1.6 页眉logo与文本并排显示实现方案
出现重叠的核心原因是HeaderFooter双Phrase参数的构造函数会将两个内容块层叠排版,而非横向排列。你只需将logo和文本内容整合到同一个Phrase中,调整位置偏移即可实现并排效果,适配4.1.6版本的代码如下:
// 加载logo并调整适配尺寸,可按需修改宽高参数 iTextSharp.text.Image logo = iTextSharp.text.Image.GetInstance(logoPath); logo.ScaleToFit(80, 40); // 构造logo块,调整y轴偏移实现与首行文本垂直对齐,中间加空格控制logo与文本间距 Chunk logoChunk = new Chunk(logo, 0, -15); Chunk gapChunk = new Chunk(" "); Chunk textChunk = new Chunk(user.Organization.Title + "\n" + materialIndex + "\n" + priceList.Title); // 合并所有内容到同一个页眉短语 Phrase headerContent = new Phrase(); headerContent.Add(logoChunk); headerContent.Add(gapChunk); headerContent.Add(textChunk); // 初始化页眉,第二个参数设为false表示不显示默认页码 HeaderFooter headerFooter = new HeaderFooter(headerContent, false); headerFooter.Alignment = 0; headerFooter.Border = iTextSharp.text.Rectangle.NO_BORDER; document.SetMargins(20, 20, 100, 0); document.Header = headerFooter;
参数调整说明:
- 修改
ScaleToFit的两个数值可以调整logo的显示尺寸,避免logo过高挤压页眉空间 - 修改
new Chunk(logo, 0, -15)的第三个数值可以调整logo的垂直位置,数值为负时logo向下偏移,可根据实际对齐效果调整 - 修改
gapChunk的空格数量可以调整logo和文本之间的横向间距
内容的提问来源于stack exchange,提问作者Hardik Gondalia
相关产品推荐
相关产品推荐

