添加水印到 PDF
Aspose.PDF for PHP via Java 允许使用工件向您的 PDF 文档添加水印。请查看本文以解决您的任务。
使用 Adobe Acrobat 创建的水印称为工件(如 PDF 规范的 14.8.2.2 实际内容和工件中所述)。为了处理工件,Aspose.PDF 提供了两个类:Artifact 和 ArtifactCollection。
为了获取特定页面上的所有工件, Page 类具有 Artifacts 属性。 这个主题解释了如何在 PDF 文件中处理工件。
处理工件
Artifact 类包含以下属性:
Artifact.Type – 获取工件类型(支持 Artifact.ArtifactType 枚举的值,其中包括 Background, Layout, Page, Pagination 和 Undefined)。 Artifact.Subtype – 获取工件子类型(支持 Artifact.ArtifactSubtype 枚举的值,其中包括 Background, Footer, Header, Undefined, Watermark)。
Artifact.Contents – 获取工件内部操作符的集合。其支持的类型是 System.Collections.ICollection。 Artifact.Form – 获取工件的 XForm(如果使用了 XForm)。水印、页眉和页脚工件包含显示所有工件内容的 XForm。
Artifact.Image – 获取工件的图像(如果存在图像,否则为 null)。Artifact.Text – 获取文档对象的文本。
Artifact.Rectangle – 获取文档对象在页面上的位置。
Artifact.Rotation – 获取文档对象的旋转角度(以度为单位,正值表示逆时针旋转)。
Artifact.Opacity – 获取文档对象的不透明度。可能的值范围是0到1,其中1是完全不透明。
编程示例:获取水印
以下代码片段展示了如何使用PHP获取PDF文件第一页上的每个水印。
// 打开文档
$document = new Document($inputFile);
$formattedText = new FormattedText("Watermark",
(new Color())->getBlue()->getRgb(),
(new facades_FontStyle())->getCourier(),
facades_EncodingType::$Identity_h,
true, 72.0);
$horizontalAlignment = new HorizontalAlignment();
$verticalAlignment = new VerticalAlignment();
$artifact = new WatermarkArtifact();
$artifact->setText($formattedText);
$artifact->setArtifactHorizontalAlignment ($horizontalAlignment->getCenter());
$artifact->setArtifactVerticalAlignment ($verticalAlignment->getCenter());
$artifact->setRotation(45);
$artifact->setOpacity(0.5);
$artifact->setBackground(true);
$document->getPages()->get_Item(1)->getArtifacts()->add($artifact);
// 保存输出文档
$document->save($outputFile);
$document->close();