itext html to pdf设置边距,itextpdf特定页面上的不同边距

在将HTML转换为PDF的过程中,遇到iText设置页面边距的问题。尝试使用`document.setMargins()`和`document.newPage()`,但发现所有页面边距相同,导致标题和其他元素可能重叠。通过编辑文档内容的方法,成功地为不同页面设置了不同的边距。`DiplomaPdfDataGenerator.generateFirstPagePdf()`和`generateOtherPagesPdf()`分别生成首页和其他页面的PDF内容,通过调整`DefaultPdfDocumentSettings`常量的值实现了所需效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个关于文件的一些问题:

itextpdf是否必须有一个特定的页面上的其他保证金的选项?我曾尝试使用

document.setMargin

然后

document.newPage

,但似乎每个页面得到相同的幅度。

有什么办法可以防止标题和元素重叠吗?

谢谢!

EDIT

这里是,增加了该文档内容的方法:

@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());

}

}

,这是结果:

k5MMS.png

0HnTJ.png

+0

'DiplomaPdfDataGenerator.generateFirstPagePdf()'和'DiplomaPdfDataGenerator.generateOtherPagesPdf()'返回什么?你怎么生成你的头文件?那些DefaultPdfDocumentSettings常量的值是多少?除此之外,代码看起来像我的答案中的代码,它可以像预期的那样工作。因此,这些对象或机制有些特殊之处。 –

+0

它工作。 generateFirstPagePdf()和generateOtherPagesPdf()返回段落/元素。我只是没有注意到差异,因为DefaultPdfDocumentSettings.TOP_MARGIN是20.我将顶部边距更改为60,我注意到差异 –

+1

太棒了!我开始想知道这些方法可能会返回什么结果来忽略边距...; –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值