【问题标题】:Fixing image positioning in iTextSharp修复 iTextSharp 中的图像定位
【发布时间】:2011-11-11 21:01:36
【问题描述】:

如何逐步浏览 itextsharp 文档中的元素并在创建后更改它们?具体来说,我想在我的文档中找到图像元素并更改图像对齐属性。


这是避免不可避免的情况,你为什么要写这篇文章 -

我有一个包含一些极其复杂的动态合约的应用程序。我编写了一个类,它允许在 xml 中使用变量、条件块、循环和“函数”来定义合约,以使定义合约逻辑更容易。我的代码将动态元素转换为可以被 itextsharp xmlparser 解析的 xml 文档。

除了复选框外,它运行良好。看起来内置字体不包含复选框字形,据我所知,使它们出现的唯一方法是将它们作为图像包含在内。这可行,但我对显示属性的控制非常有限,在 xml 中设置对齐方式无济于事 - 它总是显示文本中断到下一行。

我能想到的唯一解决问题的方法是在创建文档后查看文档,并从我有更多控制权的代码中追溯修复图像对齐。有什么想法吗?

【问题讨论】:

    标签: c# .net pdf itextsharp


    【解决方案1】:

    您只需要一个复选框还是一个带有复选标记的复选框?如果只是一个复选框,那么您可以使用内置的ZAPFDINGBATS 字体和字符 113:

    int CheckBoxChar = 113;
    Font ZapfFont = FontFactory.GetFont(BaseFont.ZAPFDINGBATS, 20);
    Chunk C = new Chunk((char)CheckBoxChar, ZapfFont);
    Paragraph P = new Paragraph();
    P.Add(C);
    

    【讨论】:

      【解决方案2】:

      绕过换行符的一种方法是将图像包装在块中:

      Paragraph p = new Paragraph();
      p.Add(new Phrase("Test "));
      p.Add(new Chunk(image, 0, 0));
      p.Add(new Phrase(" end."));
      document.Add(p);
      

      使用 5.1.2.0 进行测试。在将 Image 对象包装到 Chunk 之前实例化一次,以便重复使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        • 2016-10-02
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 1970-01-01
        • 2015-04-01
        相关资源
        最近更新 更多