1

iText 7刚刚于 2016 年 5 月发布,虽然其中一些教程很有帮助,但一些更高级的功能却很难理解。这个页面有一个如何使用文本作为水印的示例(大约在页面下方的 90%),但我不知道如何使用图像作为水印,我真的不知道从哪里开始随着新版本。有人知道如何在 iText 7 中使用图像作为水印吗?任何想法从哪里开始?

4

1 回答 1

5

我不是 100% 肯定这是正确的方法,但我会说我有 95% 的信心。

使用您链接到的 iText 7 教程作为入门指南以及iText 5 版本,我们可以使用“图形状态”来修改当前画布。

(下面的代码是 C#,但您应该能够很容易地将其转换为 Java,几乎只是将属性和方法的第一个字母小写。另外,我使用完整的命名空间路径,以便您知道事情在哪里。)

首先,创建一个自定义状态并设置其透明度:

//Create a transparent state
iText.Kernel.Pdf.Extgstate.PdfExtGState tranState = new iText.Kernel.Pdf.Extgstate.PdfExtGState();
tranState.SetFillOpacity(0.5f);

其次,获取您的图像:

//Get your image somehow
iText.IO.Image.ImageData myImageData = ImageDataFactory.Create("D:\\14.jpg", false);
iText.Layout.Element.Image myImage = new iText.Layout.Element.Image(myImageData);

第三(和可选),如果需要更改您的图像:

//Position, rotate and scale it as needed
myImage.SetFixedPosition(100, 100);
myImage.SetRotationAngle(45);
myImage.ScaleAbsolute(200, 200);

四、保存pdfCanvas(来自教程)状态并设置一个新的:

pdfCanvas.SaveState().SetExtGState(tranState);

第五,将您的图像添加到更高级别的画布(再一次,来自教程):

canvas.Add(myImage);

第六,重置 pdfCanvas 状态:

pdfCanvas.RestoreState();

布鲁诺更新:

添加图像在“iText 7: Building Blocks”教程的第 3 章中进行了说明。在“iText 7:快速入门教程”的第 3 章中,我们使用PdfCanvasCanvas对象。关于如何创建和添加图像的缺失信息在“Building Blocks”教程中。

于 2016-06-29T21:41:55.043 回答