iTextSharp自扩展页面宽度

时间:2010-12-22 19:45:58

标签: c# itextsharp

我正在编写一个Web应用程序来生成标签。我目标的标签打印机使用12mm磁带,客户指定他们想要将标签限制为3.25“。我知道使用iTextSharp我可以指定我想要创建的文档的大小,但是看起来我有指定宽度和高度。

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

不,这在iText中是不可能的。在其他地方也不是特别好的主意。正如雷德曼所说,PDF是一种基于印刷的格式。这不是HTML。

你可以采取一些措施来解决这个问题:

  1. 使用最大法定身高创建您的页面。 200“* 72dpi = 14400点。
  2. 在段落中添加“通用标记”。
  3. 创建一个标记事件处理程序,用于跟踪绘制上一个段落底部的位置。
  4. 保存PDF。
  5. 使用PDFStamper
  6. 再次打开它
  7. 设置页面底部以匹配最后一个段落的位置。请记住,左下角从0,0开始,右上角将是
  8. 保存最终PDF
  9. 这个技巧只有在你的总输出低于200英寸高时才会起作用。如果你继续这个,你仍然会得到第二页,你的“底部是什么”代码最好为它做好准备。

    PS:我不知道有多少12mm x 3.25“页面会出现什么问题...这不完全适合他们想要打印的标签吗?