如何在 iText 7 中用位图填充形状或用形状遮盖位图?

How to fill a shape with bitmap or mask a bitmap with shape in iText 7?

我想用位图填充形状,换句话说,用形状遮盖位图。我找不到直接的例子。我正在使用 iText 7 和 C#。

您可以用位图填充形状,方法是将形状设为剪辑路径并添加位图,例如像这样:

using (PdfWriter writer = new PdfWriter(...))
using (PdfDocument pdfDoc = new PdfDocument(writer))
{
    ImageData data = ImageDataFactory.Create(...);

    PdfCanvas pdfCanvas = new PdfCanvas(pdfDoc.AddNewPage());
    pdfCanvas.SaveState()
             .MoveTo(100, 100)
             .LineTo(300, 200)
             .LineTo(400, 400)
             .LineTo(200, 300)
             .ClosePath()
             .EoClip()
             .EndPath();
    pdfCanvas.AddImageAt(data, 100, 100, false);
    pdfCanvas.RestoreState();
}

(AddImageWithMask 测试 testAddImageInShape)

结果如下所示: