C# PDFStamper不适用于较新版本的iTextSharp
iTextSharp的最新版本是5.5.11 当我在5.5.0上运行完全相同的代码时,它是有效的 这是一个非常简单的请求-使用iTextSharp在内存中的现有PDF上设置水印 以下是违规代码: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 +
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版本不再工作?请描述问题。您预计会发生什么,会发生什么,您是否收到错误消息。水印在较新的版本中不可见。在较旧的版本中是可见的。错误可能会更好,但不幸的是,它只是很快出现。