iText7 - 无法设置 SquareAnnotation 内部颜色的不透明度

iText7 - unable to set the the Opacity for SquareAnnotation Interior color

团队, 我正在使用 iText7 C# 库。我无法为方形注释 InteriorColor 设置不透明度。

下面是我正在使用的代码。我尝试了我们为 SquareAnnotation 设置不透明度的所有不同方法,但没有成功。我错过了什么吗?

private PdfSquareAnnotation AddAnnotation(float rectHeight, float rectWidth, float x, float y)
    {
        Rectangle rect = new Rectangle(x, y, rectWidth, rectHeight);
        PdfSquareAnnotation squareAnnotation = new PdfSquareAnnotation(rect);
        squareAnnotation.SetColor(ColorConstants.GREEN);
        squareAnnotation.SetTitle(new PdfString("This is the title"));
        squareAnnotation.SetContents("This is the contents of the annotation. bla bla..");
        squareAnnotation.SetNonStrokingOpacity(25);
        squareAnnotation.SetOpacity(new PdfNumber(30));
        squareAnnotation.SetInteriorColor(new float[] { (float)0.294, (float)0.552, (float)0.968 });

        //squareAnnotation.SetStrokingOpacity(25);


        return squareAnnotation;
    }

输出:

Opacity for interior color is not being applied

提前致谢

原因是您使用了不透明度值 25 和 30 - 不透明度值范围是 0.0(完全透明)到 1.0(完全不透明)。因此,25 和 30 实际上是 过度不透明

通过切换到

squareAnnotation.SetNonStrokingOpacity(0.25f);
squareAnnotation.SetOpacity(new PdfNumber(0.30f));

您获得了所需的部分透明度。