如何逐步浏览itextsharp文档中的元素并在创建它们后对其进行更改?具体来说,我想在文档中找到图像元素并更改图像对齐属性。
这是避免为什么你想要做这个帖子的不可避免的情景 -
我的应用程序包含一些极其复杂的动态合约。我编写了一个类,允许在xml中使用变量,条件块,循环和“函数”定义契约,以便更容易地定义契约逻辑。我的代码将动态元素转换为可由itextsharp xmlparser解析的xml文档。
除复选框外,它的效果很好。看起来内置字体不包含复选框字形,并且据我所知,使它们出现的唯一方法是将它们包含为图像。这有效但我对显示属性的控制非常有限,在xml中设置对齐什么都不做 - 它总是显示文本突破到下一行。
我唯一可以想到解决这个问题的方法是在创建文档后浏览文档,并从我有更多控制权的代码中追溯修复图像对齐。任何想法?
答案 0 :(得分: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);
答案 1 :(得分:1)
绕过换行符的一种方法是将图像包装在Chunk中:
Paragraph p = new Paragraph();
p.Add(new Phrase("Test "));
p.Add(new Chunk(image, 0, 0));
p.Add(new Phrase(" end."));
document.Add(p);
测试w / 5.1.2.0。
表示将Image对象包装到Chunk中之前实例化一次,然后重新使用它。