c# - 如何根据内容定义页面大小?

标签 c# itext

我正在使用 iTextSharp 生成 PDF 文档。该文档必须只有一页。换句话说,内容必须适合页面大小。 使用 iTextSharp 可以实现这一点吗?

我尝试在将内容添加到文档之前获取内容的高度,这样我可以在创建文档之前计算总大小, 但某些内容类型(例如表格)在添加到文档之前没有高度。

最佳答案

如果您创建一个 PdfPTable 并定义表格的宽度,例如如下所示:

table.TotalWidth = 400f;
table.LockedWidth = true;

然后您可以使用向table询问其高度,如下所示:

Float h = table.TotalHeight;

您可以使用 h 定义页面大小,例如:

Document document = new Document(400, h, 0, 0, 0, 0);

请注意,所有测量均以用户单位完成,默认情况下 1 个用户单位等于 1 分。如果不定义宽度,getTotalHeight() 方法将返回 0,因为高度取决于宽度,而 table 在定义宽度之前并不知道宽度。渲染。

关于c# - 如何根据内容定义页面大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33203960/

相关文章:

java - iText:带有 PdfpTable 的 Pdf 专色

java - 无论如何可以使用 iText 保存交互式 pdf 吗?

c# - 字节到 bool 值的转换器(复选框)

c# - 在 C#4.0 中创建并关闭 Excel 文件后,Excel 仍在任务管理器中运行

c# - `async void`(没有等待)与 `void` 之间有什么区别

itext - 显示消息 "The validity of the document is unknown"的签名 PDF,iText

c# - ItextSharp 不显示日语字体

java - Itext 5 表行拆分到新页面并重复

c# - 拥有一个带有 C++ 类的 DLL,即构造函数接受其他 C++ 类,如何使 C# 能够创建其实例?

c# - Multifunction RegEx for parsing JCL variables - out of working 解决方案