如何使用ITextSharp将图像添加到PDF?

时间:2011-01-04 09:03:00

标签: c# itextsharp

我想使用iTextSharp 5.0.5。但是没有找到关于这个版本的任何教程。我下载了一些以前的版本教程,但是给出了错误。我只是想通过iTextSharp将一些图像拼接成pdf文件。有人可以给我代码吗?

编辑:经过一段时间的花费,我终于想出了如何添加图片。但问题是图像太大了。现在我的问题是如何缩小图像或我想以正常格式查看页面中的图像。现在我该怎么做?

1 个答案:

答案 0 :(得分:6)

首先,举例。他们都是“iText in Action,2nd edition”的一部分。幸运的是,这本书的例子都是available on line。他们标记了他们所涵盖的各种课程和主题,以帮助您找到您可能想要的任何内容。好东西。

正如您所指出的,许多旧例子都是“不再有用”。这就是为什么他们不再在网站上了。这本书的例子都是布鲁诺可以管理的(和他保持最新状态)最新的。

一方面,The Book非常有用,但不是必需的。另一方面,花在书上的钱是用来支持iText的钱。我个人并不会因为你买这本书而受益,但考虑到布鲁诺是朋友。帮助我的朋友。

否则。 GRR。


如果您将ImageDocument一起使用,则有多种选择:

image.scaleAbsolute(xScale, yScale); // 1.0f == same size

image.scalePercent(percent); // 100.0f == same size

image.scaleToFit(desiredX, desiredY); // in points, always maintains aspect ratio

选择。

另一方面,如果您要将图片直接添加到内容流PdfContentByte,则可以使用以上内容加上:

// scale/position the image Right Here.
contentByte.addImage(image, desiredX, 0, 0, desiredY, xLoc, yLoc );
// will NOT maintain aspect ratio.  That's a "2d transformation matrix".  Google it.

将图像添加到PdfContentByte(或其子类)时,您可以使用上面的矩阵技术,也可以设置图像的比例(第一组调用)及其位置。当您使用以下内容时,必需使用绝对定位:

image.setAbsolutePosition(xLoc, yLoc);
contentByte.addImage(image);

如果不这样做,addImage将抛出DocumentException,并显示消息“图像必须具有绝对定位”。 (或者该字符串的本地化版本恰好是。)