【问题标题】:iText: custom left and right margins for headeriText:标题的自定义左右边距
【发布时间】:2014-04-11 10:25:35
【问题描述】:

我创建了一个创建 pdf 文档的 java 类。该文档的标题由包含文本和图像的表格组成,每个页面上都有。

我把header加上PdfPageEventHelper.onStartPage(),代码如下:

Document doc = new Document();
ByteArrayOutputStream baos= new ByteArrayOutputStream(); 
PdfWriter writer = PdfWriter.getInstance(doc, baos);
doc.setMargins(Utilities.millimetersToPoints(30), Utilities.millimetersToPoints(20),   Utilities.millimetersToPoints(10), Utilities.millimetersToPoints(15));
writer.setPageEvent(new HeaderFooter(Variables...));
doc.open();

... do other stuffs...

我有以下问题:我希望标题相对于文档的其余部分有不同的左右边距:特别是标题表的左侧应该更多地位于正文的左侧。

可以这样做吗?我的问题有简单的解决方案吗?我阅读了文档,但找不到最简单的解决方案。

【问题讨论】:

    标签: pdf layout itext margins


    【解决方案1】:

    如果您以与此example 相同的方式实现您的HeaderFooter 类,您只需在writeSelectedRows() 调用中设置所需的值,您在TableFooter#onEndPage() 中看到将您的标题放在绝对位置。

    【讨论】:

    • 这是更好的答案。看来问题作者提供的solutiononStartPage()方法中使用了document.add()。这是个坏主意。它可能会导致不良的副作用。
    【解决方案2】:

    已解决:我将标题放在段落中并将左边距设置为负数... 残酷但有效:)

    【讨论】:

    • @Joce 虽然不是很详尽,但 Alessandro 的回答似乎解决了他的问题,而不仅仅是评论、批评或澄清请求。不过,要求提供工作样本可能是合适的。
    • 这是我对问题的回答,不是要求澄清。
    猜你喜欢
    • 2019-04-14
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多