固定图像定位在iTextSharp

本文关键字:iTextSharp 定位 图像 | 更新日期: 2023-09-27 18:14:08

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


这里有一个场景来阻止不可避免的你为什么要做这个帖子-

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

除了复选框之外,它工作得很好。看起来内置字体不包含复选框字形,据我所知,使它们出现的唯一方法是将它们作为图像包含。这是有效的,但是我对显示属性的控制非常有限,在xml中设置对齐没有任何作用-它总是显示文本断行到下一行。

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

固定图像定位在iTextSharp

你只需要一个复选框还是一个里面有一个复选标记的复选框?如果只是一个复选框,那么你可以使用内置的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);

绕过换行符的一种方法是将图像放在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中之前,将其实例化一次,这样它就可以被重用。