在PDF中以编程方式添加图像印章

在PDF文件中添加图像印章

您可以使用 ImageStamp 类在PDF文档中添加图像作为印章。ImageStamp 类提供了指定高度、宽度和不透明度等的方法。

要添加图像印章:

  1. 使用所需属性创建一个 Document 对象和一个 ImageStamp 对象。

  2. 调用 Page 类的 addStamp(..) 方法,将图章添加到 PDF 中。

以下代码片段展示了如何在 PDF 文件中添加图像图章。


    // 打开文档
    $document = new Document($inputFile);        
    $pages = $document->getPages();
  
    // 创建图像图章
    $imageStamp = new ImageStamp($inputImageFile);
    $imageStamp->setBackground(true);
    $imageStamp->setXIndent(100);
    $imageStamp->setYIndent(100);
    $imageStamp->setHeight(48);
    $imageStamp->setWidth(225);
    $imageStamp->setRotate((new Rotation())->getOn270());
    $imageStamp->setOpacity(0.5);

    // 将图章添加到特定页面
    $document->getPages()->get_Item(1)->addStamp($imageStamp);

    // 保存输出文档
    $document->save($outputFile);
    $document->close()

控制添加图章时的图像质量

ImageStamp 类允许您在 PDF 文档中添加图像作为图章。 它还允许您在将图像作为水印添加到 PDF 文件时控制图像质量。为此,已在 ImageStamp 类中添加了一个名为 setQuality(…) 的方法。在 com.aspose.pdf.facades 包的 Stamp 类中也可以找到类似的方法。

以下代码片段展示了如何在 PDF 文件中添加印章时控制图像质量。


    // 打开文档
    $document = new Document($inputFile);        
    $pages = $document->getPages();

    // 创建图像印章
    $imageStamp = new ImageStamp($inputImageFile);
    $imageStamp->setQuality(10);

    $document->getPages()->get_Item(1)->addStamp($imageStamp);

    // 保存输出文档
    $document->save($outputFile);
    $document->close();        

浮动框中的图像印章作为背景

Aspose.PDF API 允许您在浮动框中将图像印章作为背景添加。 FloatingBox 类的 BackgroundImage 属性可以用来为浮动框设置背景图章,如以下代码示例所示。

此代码片段演示了创建 PDF 文档并向其中添加 FloatingBox 的过程。FloatingBox 包含一个文本片段、一个边框、一个背景图片和一个背景颜色。生成的文档随后保存到输出文件。


    // 打开文档
    $document = new Document($inputFile);
    $colors = new Color();
    $pages = $document->getPages();

    // 向 PDF 文档添加页面
    $page = $pages->add();

    // 创建 FloatingBox 对象
    $aBox = new FloatingBox(200, 100);

    // 设置 FloatingBox 的左侧位置
    $aBox->setLeft(40);

    // 设置 FloatingBox 的顶部位置
    $aBox->setTop(80);

    // 设置 FloatingBox 的水平对齐
    $aBox->setHorizontalAlignment((new HorizontalAlignment())->getCenter());

    // 向 FloatingBox 的段落集合中添加文本片段
    $aBox->getParagraphs()->add(new TextFragment("主文本"));

    // 设置 FloatingBox 的边框
    $aBox->setBorder(new BorderInfo(BorderSide::$All, $colors->getRed()));

    // 添加背景图片
    $img = new Image();
    $img->setFile($inputImageFile);
    $aBox->setBackgroundImage($img);

    // 设置 FloatingBox 的背景颜色
    $aBox->setBackgroundColor($colors->getYellow());

    // 将 FloatingBox 添加到页面对象的段落集合中
    $page->getParagraphs()->add($aBox);
    
    // 保存输出文档
    $document->save($outputFile);
    $document->close();