[英]PDF footer at the bottom using iTextSharp
我正在尝试使用iTextSharp 5.0.6在c#中创建pdf文档。 我想分别向OnStartPage和OnEndPage事件中的每个页面添加页眉和页脚。
如果使用页脚,则存在一个问题,即页脚恰好在页面结尾处创建,而我希望位于页面底部。
iTextSharp中是否可以指定页面高度,以便始终在底部创建页脚。
谢谢!
页面的高度始终被定义:
document.PageSize.Height // document.getPageSize().getHeight() in Java
请记住,在PDF中0,0是左下角,并且坐标随着向右和向上移动而增加。
在PdfPageEvent中,您需要使用绝对坐标。 听起来您是从文档中获取当前的Y,还是在当前位置获取了Just Drawing Stuff。 不要那样做
另外,如果要在每个页面上使用完全相同的页脚,则可以将所有内容绘制到PdfTemplate中,然后将该模板绘制到所需的各个页面中。
PdfTemplate footerTmpl = writer.getDirectContent().createTemplate( 0, 0, pageWidth, footerHeight );
footerTmpl.setFontAndSize( someFont, someSize );
footerTmpl.setTextMatrix( x, y );
footer.showText("blah");
// etc
然后在您的PdfPageEvent
,您只需在页面底部添加footerTempl
即可:
writer.getDirectContent().addTemplateSimple( footerTmpl, 0, 0 );
即使您的大多数页脚相同,也可以使用此技术节省内存,执行时间和文件大小。
此外,如果您不想直接弄乱PdfContentByte
绘制命令,则可以通过ColumnText
某种程度上避免它们。 有几个用该类的iText或iTextSharp标记的SO问题。 戳一戳,您会找到它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.