【发布时间】:2016-06-27 14:58:37
【问题描述】:
大家好!
我对文档有一些疑问:
- itextpdf 是否可以选择在特定页面上设置不同的边距?我试过用
document.setMargin
然后
document.newPage
但似乎每一页都有相同的边距。
- 有没有办法防止标题和元素重叠?
谢谢!
编辑
这里是添加文档内容的方法:
@Override
void addDocumentContent(Document doc, PdfWriter writer, AbstractDiplomaDataModel diplomaData) throws DiplomaPdfFileProducerException {
try {
doc.setMargins(DefaultPdfDocumentSettings.LEFT_MARGIN, DefaultPdfDocumentSettings.RIGHT_MARGIN, 0f, 0f);
doc.newPage();
doc.add(new DiplomaPdfDataGenerator(diplomaData).generateFirstPagePdf());
doc.setMargins(DefaultPdfDocumentSettings.LEFT_MARGIN, DefaultPdfDocumentSettings.RIGHT_MARGIN, DefaultPdfDocumentSettings.TOP_MARGIN,DefaultPdfDocumentSettings.BOTTOM_MARGIN);
doc.newPage();
doc.add(new DiplomaPdfDataGenerator(diplomaData).generateOtherPagesPdf());
} catch (Exception e) {
throw new DiplomaPdfFileProducerException(e.getMessage());
}
}
结果如下:
【问题讨论】:
-
DiplomaPdfDataGenerator.generateFirstPagePdf()和DiplomaPdfDataGenerator.generateOtherPagesPdf()返回什么?以及如何生成标题?那些DefaultPdfDocumentSettings常量的值是什么?除此之外,代码看起来像我的答案中的代码,它确实像预期的那样工作。因此,这些对象或机制有些特殊。 -
成功了。 generateFirstPagePdf() 和 generateOtherPagesPdf() 返回段落/元素。我只是没有注意到差异,因为 DefaultPdfDocumentSettings.TOP_MARGIN 是 20。我将上边距更改为 60,我注意到了差异
-
太棒了!我开始想知道这些方法可以返回什么来使结果忽略边距... ;)
标签: java pdf-generation itext