我们使用xhtml到pdf取得了很好的成功,但是每个页面都有一个新的要求,即头文件和页面数量。我们正在使用新版飞碟。
......但这不起作用。标题将在第一页的左上角。
如果我使用r7版本,标题和页面编号工作正常,但是没有传递的html被渲染,而在r8中,header \ page编号被忽略,但html被完美呈现。用于测试的xHTML是从上面的url复制的。
我知道我必须遗漏一些非常简单的事情,如果有人有任何想法或评论,我将非常感激听到。
答案 0 :(得分:2)
我认为他们在r8中更改了此功能....请尝试使用此方法:
答案 1 :(得分:1)
我们使用相同的方法,一切都很完美,但我决定不使用飞碟的内置页眉/页脚,并在生成PDF后使用PdfStamper
添加它们,它运行得很好,这是一个例子。
public void modifyPdf(PdfStamper stamper) {
this.reader = stamper.getReader();
PdfContentByte under = null;
PdfPTable header = null;
PdfPTable footer = null;
final int total = this.reader.getNumberOfPages();
for (int page = 1; page <= total; page++) {
under = stamper.getUnderContent(page);
final PdfDocument doc = under.getPdfDocument();
final Rectangle rect = this.reader.getPageSizeWithRotation(page);
header = ... //build your header
footer = ... // build your footer
final float x = 0;
//write header to PDF
if (header != null) {
float y = (rect.getTop() - 0);
header.writeSelectedRows(0, -1, x, y, under);
}
//write footer to PDF
if (footer != null) {
float y = (rect.getBottom() + 20);
footer.writeSelectedRows(0, -1, x, y, under);
}
}
}
你可以像这样建造你的压模:
final PdfReader reader = new PdfReader(/*your pdf file*/);
final PdfStamper stamper = new PdfStamper(reader, /* output */);
希望您觉得这很有帮助。