如何根据内容定义页面大小?
How to define the page size based on the content?
我正在使用 iTextSharp 生成 PDF 文档。该文件必须只有一页。换句话说,内容必须适合页面大小。
可以用 iTextSharp 实现吗?
我试图在将内容添加到文档之前获取内容的高度,因此我可以在创建文档之前计算总大小,
但是某些内容类型(例如表格)在添加到文档之前没有高度。
如果您创建 PdfPTable
并且定义 table 的宽度,例如:
table.TotalWidth = 400f;
table.LockedWidth = true;
然后你可以像这样询问 table
它的高度:
Float h = table.TotalHeight;
您可以使用h
来定义您的页面大小,例如:
Document document = new Document(400, h, 0, 0, 0, 0);
请注意,所有测量均以用户单位进行,默认情况下一个用户单位等于 1 磅。如果不定义宽度,getTotalHeight()
方法将 return 0,因为高度取决于宽度,而 table
在渲染之前不知道宽度。
我正在使用 iTextSharp 生成 PDF 文档。该文件必须只有一页。换句话说,内容必须适合页面大小。 可以用 iTextSharp 实现吗?
我试图在将内容添加到文档之前获取内容的高度,因此我可以在创建文档之前计算总大小, 但是某些内容类型(例如表格)在添加到文档之前没有高度。
如果您创建 PdfPTable
并且定义 table 的宽度,例如:
table.TotalWidth = 400f;
table.LockedWidth = true;
然后你可以像这样询问 table
它的高度:
Float h = table.TotalHeight;
您可以使用h
来定义您的页面大小,例如:
Document document = new Document(400, h, 0, 0, 0, 0);
请注意,所有测量均以用户单位进行,默认情况下一个用户单位等于 1 磅。如果不定义宽度,getTotalHeight()
方法将 return 0,因为高度取决于宽度,而 table
在渲染之前不知道宽度。