当页眉高度增加时如何调整页面的边距?

Posted

技术标签:

【中文标题】当页眉高度增加时如何调整页面的边距?【英文标题】:How to adapt the margins of a page when the height of the header increases? 【发布时间】:2015-03-29 08:00:39 【问题描述】:

我正在尝试使用 itext 生成 pdf。

我的所有数据都通过 PdfPtable 填充。 以及每页上的页眉(高度 15f)和页脚(高度 15f)。 示例代码——

PdfPTable table1 = new PdfPTable(1);
table.setTotalWidth(500);
table.setLockedWidth(true);
cell = new PdfPCell(new phrase("testing 123"));
table.addCell(cell);
table.setSplitLate(false);

我设置了我的代码(table.setSplitLate(false);) 如果我的表格内容溢出,它会转到下一页。

问题——我最近收到了一个更改请求,其中标题将是 80f 或更多,并且取决于页面的 content\pdf 表应该相应地调整。

如何控制溢出文本在下一页中的位置。因为它与标题重叠。请检查屏幕截图。

【问题讨论】:

不幸的是,您没有显示设置 iText 文档边距的代码。 【参考方案1】:

如果您需要为页脚或页眉保留更多空间,请相应地设置文档边距。

您可以通过使用带有 5 个参数的 Document 构造函数来做到这一点:

/**
 * Constructs a new <CODE>Document</CODE> -object.  
 *
 * @param pageSize
 *            the pageSize
 * @param marginLeft
 *            the margin on the left
 * @param marginRight
 *            the margin on the right
 * @param marginTop
 *            the margin on the top
 * @param marginBottom
 *            the margin on the bottom
 */
public Document(Rectangle pageSize, float marginLeft, float marginRight,
        float marginTop, float marginBottom)

其他构造函数使用 36 作为所有边距的默认值。

您也可以使用setMargins 设置边距:

/**
 * Sets the margins.
 *
 * @param marginLeft
 *            the margin on the left
 * @param marginRight
 *            the margin on the right
 * @param marginTop
 *            the margin on the top
 * @param marginBottom
 *            the margin on the bottom
 * @return  a <CODE>boolean</CODE>
 */
public boolean setMargins(float marginLeft, float marginRight,
        float marginTop, float marginBottom)

这也可以在文档中间完成。

在你的情况下,

标头为 80f 或更多的更改请求,

对于marginTop,您应该使用该数量加上一点(取决于标题的确切位置以及标题和正文之间所需的可用空间量),可能是 20。

【讨论】:

感谢您的回复 mkl 我已经设置了边距。我正在寻找每个页面和 table.setHeaderRows(1); 上的重复标题达到目的

以上是关于当页眉高度增加时如何调整页面的边距?的主要内容,如果未能解决你的问题,请参考以下文章

如何提高 JPanel 的边距和内边距?

如何根据可见性自动调整两个垂直按钮之间的边距?

当DIV的高度由jQuery的浏览器高度定义时,如何根据内容增加DIV的高度?

如何将增加的边距大小添加到一行按钮?

如何在调整窗口大小时加速 CSS 中的边距缩小?

页面导出为PDF文件时为每页增加页眉