第六章 图片Image对象如果你学习过API,你可能已经注意到可以通过几种构造函数来创建图片,本手册中,我们将仅仅告诉你最简单的解决方案,如访问通过文件名或URL确定的图片生成的Image对象。 public static Image getInstance(Uri url) public static Image getInstance(string filename) Image是一个抽象类,故得到实例的方法将判断给出的图片的类别(GIF、Jpeg、PNG……)并返回对象的类别Gif、Jpeg、Png……,一些图片会被忽略,如果你想知道哪些图片会被忽略,请查阅FAQ(http://www.lowagie.com/iText/faq.html#images)。 u 通过URL得到图片实例 这是添加一个图片最简单的办法,见示例代码0601,我们添加了一个WMF、一个Gif、一个Jpeg和一个PNG图片到文档中,使用4个URL得到: Image wmf = Image.getInstance(new URL("../examples/harbour.wmf")); Image gif = Image.getInstance(new URL("../examples/vonnegut.gif")); Image jpeg = Image.getInstance(new URL("../examples/myKids.jpg")); Image png = Image.getInstance(new URL("../examples/hitchcock.png")); 备注:许多PDF库在插入一个图片前都将其解压缩并转换成位图格式,下面是几个我为什么不这样做的原因:
u 通过文件名得到图片实例 通过简单地改变图片引用路径将示例代码0601改成示例代码0602: Image gif = Image.getInstance("vonnegut.gif"); Image jpeg = Image.getInstance("myKids.jpg"); Image png = Image.getInstance("hitchcock.png"); 同示例代码0601的区别只是该图象从本地获取而已,另外一个例子见示例代码0603。 图片的位置u 对齐方式 通过下面方法设置图片的对齐方式: Alignment = Image.RIGHT Alignment = Image.MIDDLE Alignment = Image.LEFT 参见示例代码0604。 我们将Vonnegut的图片放在右边,小孩的图片放在中间,hitchcock的图片放在左边。 u 图片和文本 另外,你还可以指定文本相对图片的环绕方式: Alignment = Image.RIGHT | Image.TEXTWRAP Alignment = Image.MIDDLE Alignment = Image.LEFT | Image.UNDERLYING 见示例代码0506,文字在Vonnegut图片的左侧,并不在我小孩的图处环绕,且排在Hitchcock图片的上面。 说明:该功能尚有一些BUG。 u 绝对位置 当制作PDF文件时,你可能用到该方法: public void setAbsolutePosition(int absoluteX, int absoluteY) 将一个图片放要页面上一个绝对位置的代码见示例代码0606,我们在不同的坐标处添加了两幅图片,这里使用给定的坐标将图片放在了左下角,通过将图片的宽度和高度作为X和Y坐标将设置第一个图片,坐标的2倍设置第二个图片。 |