当页眉高度增加时如何调整页面的边距?
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); 上的重复标题达到目的以上是关于当页眉高度增加时如何调整页面的边距?的主要内容,如果未能解决你的问题,请参考以下文章