繁体   English   中英

使用iTextSharp底部的PDF页脚

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM