C# PDFStamper不适用于较新版本的iTextSharp

C# PDFStamper不适用于较新版本的iTextSharp,c#,itext,C#,Itext,iTextSharp的最新版本是5.5.11 当我在5.5.0上运行完全相同的代码时,它是有效的 这是一个非常简单的请求-使用iTextSharp在内存中的现有PDF上设置水印 以下是违规代码: private static Stream Watermark(Stream inStream, WatermarkRequest request) { using (var outStream = new MemoryStream((int)(inStream.Length +

iTextSharp的最新版本是5.5.11

当我在5.5.0上运行完全相同的代码时,它是有效的

这是一个非常简单的请求-使用iTextSharp在内存中的现有PDF上设置水印

以下是违规代码:

private static Stream Watermark(Stream inStream, WatermarkRequest request)
    {
        using (var outStream = new MemoryStream((int)(inStream.Length + 4096)))
        {
            using (var reader = new PdfReader(inStream))
            using (var stamper = new PdfStamper(reader, outStream))
            {
                var opacity = request.Opacity.HasValue ? request.Opacity.Value : 0.75f;
                var angle = request.Angle.HasValue ? request.Angle.Value : 45;
                var size = request.Size.HasValue ? request.Size.Value : 72f;
                var color = new BaseColor(1f, 0f, 0f, 0f);

                if (!String.IsNullOrEmpty(request.Color))
                {
                    var rgba = PDF.Lib.RGBA.convert(request.Color);

                    color = new BaseColor((float)rgba.R, (float)rgba.G, (float)rgba.B, 0f);
                }

                for (var n = 1; n <= reader.NumberOfPages; n++)
                {
                    var pcb = stamper.GetOverContent(n);
                    var gstate = new PdfGState() { FillOpacity = opacity, StrokeOpacity = opacity };
                    pcb.SaveState();
                    pcb.SetGState(gstate);
                    pcb.SetColorFill(color);
                    pcb.BeginText();
                    pcb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, Encoding.Default.WebName, true), size);
                    var ps = reader.GetPageSize(n);
                    var x = (ps.Right + ps.Left) / 2;
                    var y = (ps.Bottom + ps.Top) / 2;
                    pcb.ShowTextAligned(Element.ALIGN_CENTER, request.Text, x, y, angle);
                    pcb.EndText();
                    pcb.RestoreState();
                }
            }

            return new MemoryStream(outStream.ToArray());
        }
    }
私有静态流水印(流内流、水印请求)
{
使用(var outStream=新内存流((int)(inStream.Length+4096)))
{
使用(变量读取器=新PDF读取器(流内))
使用(var压模=新PdfStamper(读卡器,分流))
{
var opacity=request.opacity.HasValue?request.opacity.Value:0.75f;
var angle=request.angle.HasValue?request.angle.Value:45;
var size=request.size.HasValue?request.size.Value:72f;
var color=新基色(1f、0f、0f、0f);
如果(!String.IsNullOrEmpty(request.Color))
{
var rgba=PDF.Lib.rgba.convert(request.Color);
颜色=新基色((浮点)rgba.R,(浮点)rgba.G,(浮点)rgba.B,0f);
}

对于(var n=1;n较新的iTextSharp版本在哪种情况下不再工作?请描述问题。您预期会发生什么,会发生什么,您是否收到错误消息。水印在较新的版本中不可见。在较旧的版本中是可见的。错误可能更可取,但不幸的是,它只是很快就出现了。您是以哪种方式看到的较新的iTextSharp版本不再工作?请描述问题。您预计会发生什么,会发生什么,您是否收到错误消息。水印在较新的版本中不可见。在较旧的版本中是可见的。错误可能会更好,但不幸的是,它只是很快出现。