102 lines
2.8 KiB
C#
102 lines
2.8 KiB
C#
#if !NET8
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using System.Web.Security;
|
|
#endif
|
|
|
|
#if !NET8
|
|
using iTextSharp.text;
|
|
using iTextSharp.text.pdf;
|
|
#endif
|
|
|
|
#if !NET8
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Security.Claims;
|
|
using System.Threading.Tasks;
|
|
#endif
|
|
|
|
namespace Fab2ApprovalSystem.PdfGenerator;
|
|
|
|
#if !NET8
|
|
|
|
public class PrintHeaderFooter : PdfPageEventHelper {
|
|
|
|
private PdfContentByte pdfContent;
|
|
private PdfTemplate pageNumberTemplate;
|
|
private BaseFont baseFont;
|
|
private DateTime printTime;
|
|
#endif
|
|
|
|
#if NET8
|
|
|
|
public class PrintHeaderFooter {
|
|
|
|
#endif
|
|
|
|
public string Title { get; set; }
|
|
|
|
#if !NET8
|
|
|
|
public override void OnOpenDocument(PdfWriter writer, Document document) {
|
|
printTime = DateTime.Now;
|
|
baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
|
|
pdfContent = writer.DirectContent;
|
|
pageNumberTemplate = pdfContent.CreateTemplate(50, 50);
|
|
}
|
|
|
|
public override void OnStartPage(PdfWriter writer, Document document) {
|
|
base.OnStartPage(writer, document);
|
|
|
|
Rectangle pageSize = document.PageSize;
|
|
|
|
if (Title != string.Empty) {
|
|
pdfContent.BeginText();
|
|
pdfContent.SetFontAndSize(baseFont, 11);
|
|
pdfContent.SetRGBColorFill(0, 0, 0);
|
|
pdfContent.SetTextMatrix(pageSize.GetLeft(40), pageSize.GetTop(40));
|
|
pdfContent.ShowText(Title);
|
|
pdfContent.EndText();
|
|
}
|
|
}
|
|
|
|
public override void OnEndPage(PdfWriter writer, Document document) {
|
|
base.OnEndPage(writer, document);
|
|
|
|
int pageN = writer.PageNumber;
|
|
string text = pageN + " - ";
|
|
float len = baseFont.GetWidthPoint(text, 8);
|
|
|
|
Rectangle pageSize = document.PageSize;
|
|
pdfContent = writer.DirectContent;
|
|
pdfContent.SetRGBColorFill(100, 100, 100);
|
|
|
|
pdfContent.BeginText();
|
|
pdfContent.SetFontAndSize(baseFont, 8);
|
|
pdfContent.SetTextMatrix(pageSize.Width / 2, pageSize.GetBottom(30));
|
|
pdfContent.ShowText(text);
|
|
pdfContent.EndText();
|
|
|
|
pdfContent.AddTemplate(pageNumberTemplate, (pageSize.Width / 2) + len, pageSize.GetBottom(30));
|
|
|
|
pdfContent.BeginText();
|
|
pdfContent.SetFontAndSize(baseFont, 8);
|
|
pdfContent.ShowTextAligned(PdfContentByte.ALIGN_RIGHT, printTime.ToString(), pageSize.GetRight(40), pageSize.GetBottom(30), 0);
|
|
pdfContent.EndText();
|
|
}
|
|
|
|
public override void OnCloseDocument(PdfWriter writer, Document document) {
|
|
base.OnCloseDocument(writer, document);
|
|
|
|
pageNumberTemplate.BeginText();
|
|
pageNumberTemplate.SetFontAndSize(baseFont, 8);
|
|
pageNumberTemplate.SetTextMatrix(0, 0);
|
|
pageNumberTemplate.ShowText(string.Empty + (writer.PageNumber - 1));
|
|
pageNumberTemplate.EndText();
|
|
}
|
|
|
|
#endif
|
|
|
|
} |