我的代码有问题。一旦我正确创建了我的pdf页面,使用ItextPdf 7的示例我想为每个页面打印页面的数量作为页面x的Y ....代码似乎正确运行,但只有最后2页正确打印
提前致谢 亚历
在我的代码下面:
import java.util.*;
public class Test{
public static void main(String[] args){
HashMap<Integer,HashMap<Integer,Character>> map;
map = new HashMap<Integer,HashMap<Integer,Character>>();
map.put(0,new HashMap<Integer,Character>());
map.get(0).put(7,'c');
System.out.println((map.get(0)).get('c'));
}
}
这是我用来打印的课程:
%matplotlib inline
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(13,6))
ax = fig.add_subplot(111)
plt.hold(True)
ax.plot([0.2, 0.5, 0.8], [4E-300, 5E-300, 4E-300], marker='.')
答案 0 :(得分:1)
看起来好像这两行都在代码的末尾:
// add all the content here
PageXofY event = new PageXofY(pdf);
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, event) ;
event.writeTotal(pdf);
document.close();
这意味着event
仅在您添加了大部分内容后才会生效,这就解释了为什么仅为文档末尾的页面添加页脚的原因。
请更改您的代码:
PageXofY event = new PageXofY(pdf);
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, event) ;
// add all the content here
event.writeTotal(pdf);
document.close();
我是您用于启发的示例的作者。如果仔细查看原始的PageXofY示例,您会看到我在创建Document
实例之前添加了事件处理程序:
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PageXofY event = new PageXofY(pdf);
pdf.addEventHandler(PdfDocumentEvent.END_PAGE, event);
Document document = new Document(pdf);
// add all the content
event.writeTotal(pdf);
document.close();
如果您阅读完整章节,您将了解它的工作原理。在另一个示例中(请参阅ImageWatermark示例),我删除了事件处理程序:
pdf.removeEventHandler(PdfDocumentEvent.START_PAGE, handler);
这会导致最后一页触发 not 事件。