网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
用C#制作PDF文件全攻略
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式
mage 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库在插入一个图片前都将其解压缩并转换成位图格式,下面是几个我为什么不这样做的原因:

这将导致PDF文件增大,这样产生的PDF文件尺寸是不同图片文件尺寸总和的数十倍。
面临一个法律问题:LZW算法受专利保护,所以不允许使用这种算法来解压缩GIF等文件。
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倍设置第二个图片。

缩放和旋转图片
u 缩放

有几种办法可以缩放图片:

public void scaleAbsolute(int newWidth, int newHeight)

public void scalePercent(int percent)

public void scalePercent(int percentX, int percentY)

public void scaleToFit(int fitWidth, int fitHeight)

小孩的图片大小为194×202象素,如果你想让图片小一些,你可以通过scaleAbsolute(97, 101)进行缩放,使用scalePercent(50)也能到达同样的效果。

还可以通过scaleAbsolute(194, 101)来减小,所以这些例子都放在了示例代码0607中。

u 对分辨率的影响

如果一个图片不经任何缩放,其分辨率(resolution)为72,如果该图片缩放比例为50%,则分辨率为144,如果有更低的缩放比,则分辨率将更大,因为象素相同但尺寸变得更小了。使用72/300=24%的比例放置一个300dpi的图片,例:你用300dpi扫描了一个5×5英寸的图片,图片结果为1500×1500象素(5×300),当你用24%(72/300=0.24)的比例将该图片放置到PDF文件中时,PDF中的图片将为5×5英寸1500X1500象素300dpi,该图片将始终为1500X1500象素而不管尺寸如何。

u 旋转

可以通过下面的方法旋转图片

public void setRotation(double r)

详见示例代码0608。

原始图片数据
到目前为止,所有例子中使用的图片均来自地本地磁盘或者某个网站,但也可能使用包含图片信息的数组来得到图片的实例:

public static Image getInstance(byte img)

该方法同前面方法的效果相同,返回一个新的Gif,Jpeg或者Png类别的Image对象。

在示例代码0609中,我们添加一个从一个Jpeg文件中读入到字节数组中的图片,很明显,使用其他getInstance方法得到实例更优越,但这仅仅是一个例子,该getInstance方法在动态创建那些根本不存在的图片时非常有用。

该例

  • 下一篇资讯: C#中UDP通信程序
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号