C# iTextSharp自动扩展页面宽度

C# iTextSharp自动扩展页面宽度,c#,itextsharp,C#,Itextsharp,我正在编写一个web应用程序来生成标签。我瞄准的标签打印机使用12mm胶带,客户指定他们希望将标签限制为3.25。我知道使用iTextSharp可以指定要创建的文档的大小,但是似乎必须同时指定宽度和高度 Document document = new Document(new iTextSharp.text.Rectangle(234f, 33.84f)); 234是3.25转换为点,33.84是12毫米转换为点,因此这将文档设置为允许的最大大小。有没有办法只设置高度,让文档自动扩展到内容量?

我正在编写一个web应用程序来生成标签。我瞄准的标签打印机使用12mm胶带,客户指定他们希望将标签限制为3.25。我知道使用iTextSharp可以指定要创建的文档的大小,但是似乎必须同时指定宽度和高度

Document document = new Document(new iTextSharp.text.Rectangle(234f, 33.84f));

234是3.25转换为点,33.84是12毫米转换为点,因此这将文档设置为允许的最大大小。有没有办法只设置高度,让文档自动扩展到内容量?这样,有没有办法确定文档的扩展宽度是否超过了客户允许的最大值?提前感谢您提供的任何帮助。

据我所知,由于PDF是一种打印格式,因此必须设置文档的宽度和高度。 这就是报告工具通常将默认页面大小设置为默认打印机页面大小的原因

您最好尝试计算内容的大小,并相应地创建PDF。
根据工作流程的数量和性质,您可以提供预览供客户在打印前检查。

否,这在iText中是不可能的。在其他地方,这也不是一个特别好的主意。正如Redman所说,PDF是一种基于打印的格式。它不是HTML

在某种程度上,您可以使用一些技巧来解决此问题:

创建具有最大法定高度的页面。200*72dpi=14400点。 在段落中添加通用标记。 创建一个标记事件处理程序,跟踪最后一段底部的绘制位置。 保存PDF。 用PDFStamper再次打开它 设置页面底部以匹配最后一段的位置。请记住,左下角从0,0开始,右上角为 保存最终的PDF 只有当您的总输出低于200高时,此技巧才会起作用。如果你再看一遍,你仍然会看到第二页,而你的代码最底层最好是为它做好准备


附言:我看不出12毫米x 3.25页有什么不对。。。这难道不符合他们想要打印的标签吗?

我认为打印完整的12mm x 3.25标签是可以接受的,但在一些标签上可能会出现明显的空白,我认为可以通过声明长度不超过3.25来消除。