java - 使用 RtfWriter2 时将页脚打印为第 X 页,共 Y 页

标签 java pdf itext rtf

我正在使用 RtfWriter (itext-rtf-2.1.4.jar) 和 com.lowagie (itext-2.1.5) 创建一个 .doc 文件。

早些时候,当我创建 PDF 时,我能够通过捕获文档关闭事件和使用以下代码在类中创建 PDF 时设置的新页事件来打印显示“Page X of Y”的页脚:

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("Sample.pdf"));

MyPageEvents events = new MyPageEvents();
writer.setPageEvent(events);

其中 MyPageEvents 是捕获分页和文档关闭等事件的类文件......它将设置所需的页眉和页脚。

这与 PDFWriter 配合得很好,但是当我开始使用 RtfWriter2 创建 .doc 文件时,它不支持事件......

RtfWriter2 writer = RtfWriter2.getInstance(document, new FileOutputStream("Sample.doc"));


MyPageEvents events = new MyPageEvents();

但它不会像 PDFWriter 那样重新组织 writer.setPageEvents() 方法...

是否有可能让页脚显示第 X 页,共 Y 页(此处 X 是当前页,而 Y 是文档中的总页数)

最佳答案

啊!快速browsing of the source揭晓答案:

RtfWriter2.setHeader()setFooter()

所以像...

HeaderFooter header = new HeaderFooter();
Paragraph headerP = header.paragraph();
myBuildHeader(headerP);

myRtfWriter2.setHeader(header);

简单。

PS:Google code search非常有帮助。我极力推荐它。


第 X 页,共 Y 页?啊。出色地。

更多 code searching在 RtfWriter2 等中生成了 text.rtf.field.RtfPageNumbertext.rtf.field.RtfTotalPageNumber。它们都扩展了Chunktext.rtf.RtfHeaderFooter 可以采用 Element[] 并且不限于单个 Paragraph。鉴于页码类都扩展了 Chunk,这不相关,但最好了解一下以供将来引用。

我对代码的猜测:

RtfHeaderFooter footer = new RtfHeaderFooter();
Paragraph p = footer.paragraph();
p.add(new RtfPageNumber());
p.add( " of ");
p.add(new RtfTotalPageNumber());

myRtfWriter2.setFooter(footer);

其余部分应保持不变。我认为。我从未真正使用过 RtfWriter2(或 RtfWriter),所以如果它不能完全按原样工作,请不要太震惊。

关于java - 使用 RtfWriter2 时将页脚打印为第 X 页,共 Y 页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064418/

相关文章:

java - 如何在 jax-rs 中显示 PDF 的文件下载对话框?

pdf - 使用 itext 将静态 pdf 添加到当前动态生成的 pdf 中

java - 在 iText 中创建文档而不指定输出

java - iText连续PDF编辑java

ios - 保存解锁 PDFDocumentsRef 到本地目录

c# - pdf 文档中的条形码生成器

java - 使用 truezip 拆分 zip

java - 是否可以在不创建中间映射的情况下对收集器分组中的每个列表进行操作?

java - 在没有列表/数组的情况下跟踪猜谜游戏中的最低分数 (Java)

java - 初学者Java问题: ____ cannot be resolved to a type