iText 7刚刚于 2016 年 5 月发布,虽然其中一些教程很有帮助,但一些更高级的功能却很难理解。这个页面有一个如何使用文本作为水印的示例(大约在页面下方的 90%),但我不知道如何使用图像作为水印,我真的不知道从哪里开始随着新版本。有人知道如何在 iText 7 中使用图像作为水印吗?任何想法从哪里开始?
问问题
1578 次
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 章中,我们使用PdfCanvas
和Canvas
对象。关于如何创建和添加图像的缺失信息在“Building Blocks”教程中。
于 2016-06-29T21:41:55.043 回答