Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在iText 7中将图像用作水印_Java_Itext7 - Fatal编程技术网

Java 在iText 7中将图像用作水印

Java 在iText 7中将图像用作水印,java,itext7,Java,Itext7,2016年5月刚刚发布,虽然一些教程很有帮助,但一些更高级的功能却很难理解。有一个关于如何使用文本作为水印的例子,大约在页面的90%以下,但我不知道如何使用图像作为水印,我真的不知道从新版本开始。有人知道如何在iText 7中将图像用作水印吗?你知道从哪里开始吗?我不是100%肯定这是正确的方法,但我有95%的信心 使用作为起始指南,我们可以使用图形状态来修改当前画布 下面的代码是C,但您应该能够非常轻松地将其转换为Java,基本上只是将属性和方法的第一个字母小写。另外,我使用完整的名称空间路径

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

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

使用作为起始指南,我们可以使用图形状态来修改当前画布

下面的代码是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:跳转开始教程的第3章中,我们使用PdfCanvas和Canvas对象。关于如何创建和添加图像的信息缺失在构建块教程中。

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

使用作为起始指南,我们可以使用图形状态来修改当前画布

下面的代码是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:跳转开始教程的第3章中,我们使用PdfCanvas和Canvas对象。有关如何创建和添加图像的缺少信息,请参见构建块教程。

感谢编辑@BrunoLowagie!我对pdfextgstate的使用不是百分之百的肯定,我还在写。我还没来得及讲那部分;-第四章将介绍Div、LineSeparator、段落、列表和列表项。第五章将介绍表格和单元格。第六章是关于事件处理程序的,我可以在这一章中接触到透明度,第七章是关于动作和书签。谢谢编辑@BrunoLowagie!我对pdfextgstate的使用不是百分之百的肯定,我还在写。我还没来得及讲那部分;-第四章将介绍Div、LineSeparator、段落、列表和列表项。第五章将介绍表格和单元格。第6章是关于事件处理程序的,我可以在本章中触及透明度,第7章是关于操作和书签。