Hi Team,
I want to add the Parallel watermark.ForEach, we are using netstandard2.0, and our longer documents have a 20000 page maximum.
using (PdfDocument doc = new PdfDocument())
{
doc.LoadFromStream(fileStream);
foreach (PdfPageBase page in doc.Pages)
{
RectangleF rectangleF = CalculateWatermarker(page.ActualSize.Width, page.ActualSize.Height);
int fontSize = (int)(Math.Min(rectangleF.Height, rectangleF.Width) / markerLines);
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, settings.AutoScale ? fontSize : settings.FontSize);
PdfTilingBrush pdfTilingBrush = new PdfTilingBrush(
new SizeF(page.ActualSize.Width, page.ActualSize.Height));
pdfTilingBrush.Graphics.SetTransparency(settings.Opacity);
_ = pdfTilingBrush.Graphics.Save();
float centerX = page.ActualSize.Width / 2;
float centerY = page.ActualSize.Height / 2;
rectangleF.X = page.ActualSize.Width / 2 - rectangleF.Width / 2;
rectangleF.Y = page.ActualSize.Height / 2 - rectangleF.Height / 2;
double radian = Math.Atan(page.ActualSize.Height / page.ActualSize.Width);
float degree = (float)(radian * (180 / Math.PI));
pdfTilingBrush.Graphics.RotateTransform(-degree, new PointF(centerX, centerY));
pdfTilingBrush.Graphics.DrawString(text,
font, pdfBrush, rectangleF,
new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle));
pdfTilingBrush.Graphics.Restore();
page.Canvas.DrawRectangle(pdfTilingBrush,
new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
}
doc.SaveToStream(outputStream, FileFormat.PDF);
}