如何引入多个PdfPageEventHelper实例? [英] How to introduce multiple PdfPageEventHelper instances?

查看:353
本文介绍了如何引入多个PdfPageEventHelper实例?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须使用itextsharp库生成大量不同类型的文档,所有文档都具有共同点,有些具有通用的标头,页数和水印,我最初的想法是拥有不同的PdfPageEventHelper子类,例如WatermarkPdfPageEventHelper,OrderHeaderPdfPageEventHelper, PageNumberPdfPageEventHelper等,并在必要时应用它们以撰写文档,但PageEvent并不是真正的事件,而是仅一个IPdfEvent的实例,实现此目的的正确方法是什么?

I have to generate a large amount of different types of documents using the itextsharp library, all have things in common, some have common headers, page counts, watermarks my initial tought was to have different PdfPageEventHelper subclasses for example WatermarkPdfPageEventHelper , OrderHeaderPdfPageEventHelper , PageNumberPdfPageEventHelper etc and apply them when necessary to compose the documents but PageEvent is not really an event but an instance of only one IPdfEvent , what is the correct way to implement this?

推荐答案

我是iText Java版本的作者.我的答案可能不适用于C#端口.

I'm the author of the Java Version of iText. My answer may not be applicable to the C# port.

页面事件可以累积:

writer.setPageEvent(watermarkevent);
writer.setPageEvent(headerevent);
writer.setPageEvent(footerevent);

内部会创建一个PdfPageEventForwarder.该对象将确保按添加顺序触发每个事件.

Internally, a PdfPageEventForwarder is created. This object will make sure that each event is triggered in the order you added them.

要删除事件时,只需执行以下操作:

When you want to remove the events, you just need to do this:

writer.setPageEvent(null);

在您的情况下,您可以创建自己的PdfPageEventForwarder实例,创建页面事件的不同组合.

In your case, you could create your own PdfPageEventForwarder instances, creating different combinations of page events.

我很确定您可以在iTextSharp中执行相同的操作,尽管类名和方法名可能略有不同.

I'm pretty sure you can do the same thing in iTextSharp although there may be slight differences in the class and method names.

这篇关于如何引入多个PdfPageEventHelper实例?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆