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

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

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

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

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

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

要不然。 格儿。

;)


如果您将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 ,并显示消息“图像必须具有绝对定位”。 (或者该字符串的本地化版本恰好是)。