我正在使用ITextSharp将多个表写入文档。
如何知道某个表是否会转到下一页,那么我可以删除某个单元格吗?
P.S。我正在使用table.KeepTogether = true;
。
答案 0 :(得分:0)
您可以在模拟模式下使用ColumnText ct = new ColumnText(writer.DirectContent);
ct.SetSimpleColumn(36, 36, 559, 806);
ct.AddElement(table);
int status = ct.Go(true);
来确定元素是否适合特定的矩形。另请参阅How to fit a String inside a rectangle?
例如:
(36, 36)
我使用了坐标(559, 806)
和ColumnText.HasMoreText(status)
,因为我假设您有一张半英寸边距的A4文档。如果true
为false
,则表格对象不适合页面。如果该值为ct.GetYLine()
,则表格适合页面,您甚至可以使用ColumnText
方法找出表格结束的Y坐标。
根据此信息,您可以将更改的表或现有表添加到Go(false)
对象,重置简单列并使用Go()
(或$decrypted = Crypto::decrypt($urlParameter, $yourKey);
// ... snip ... //
echo "<a href=\"/your/url/?".http_build_query([
'id' => Crypto::encrypt($yourRowId, $yourKey)
])."\">";
)添加内容为了真实。
另见: