Merged PR 17498: Removed PdfViewController, HtmlViewRenderer and FakeView to be replaced with...
Removed PdfViewController, HtmlViewRenderer and FakeView to be replaced with ViewEngineResult Render method To test use url http://mestsa05ec.infineon.com:8080/ecn/printecnpdf?ecnNumber=82654
This commit is contained in:
@ -1,27 +1,38 @@
|
||||
#if !NET8
|
||||
using iTextSharp.text;
|
||||
using iTextSharp.text.html.simpleparser;
|
||||
using iTextSharp.text.pdf;
|
||||
#endif
|
||||
|
||||
using System.IO;
|
||||
|
||||
namespace Fab2ApprovalSystem.PdfGenerator;
|
||||
|
||||
/// <summary>
|
||||
/// This class is responsible for rendering a html text string to a PDF document using the html renderer of iTextSharp.
|
||||
/// </summary>
|
||||
public class StandardPdfRenderer {
|
||||
|
||||
private const int HorizontalMargin = 40;
|
||||
private const int VerticalMargin = 40;
|
||||
|
||||
public byte[] Render(string htmlText, string pageTitle) {
|
||||
byte[] renderedBuffer;
|
||||
public static byte[] GetPortableDocumentFormatBytes(string pageTitle, string htmlText) {
|
||||
byte[] results;
|
||||
using (MemoryStream memoryStream = GetPortableDocumentFormat(pageTitle, htmlText)) {
|
||||
results = new byte[memoryStream.Position];
|
||||
memoryStream.Position = 0;
|
||||
memoryStream.Read(results, 0, results.Length);
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
using (MemoryStream outputMemoryStream = new()) {
|
||||
#if !NET8
|
||||
using (Document pdfDocument = new Document(PageSize.A4, HorizontalMargin, HorizontalMargin, VerticalMargin, VerticalMargin)) {
|
||||
PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDocument, outputMemoryStream);
|
||||
public static void WritePortableDocumentFormatToFile(string pageTitle, string htmlText, string path) {
|
||||
using (MemoryStream memoryStream = GetPortableDocumentFormat(pageTitle, htmlText)) {
|
||||
using (FileStream fileStream = new(path, FileMode.Create)) {
|
||||
memoryStream.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static MemoryStream GetPortableDocumentFormat(string pageTitle, string htmlText) {
|
||||
MemoryStream result = new();
|
||||
using (Document pdfDocument = new Document(PageSize.A4, HorizontalMargin, HorizontalMargin, VerticalMargin, VerticalMargin)) {
|
||||
using (PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDocument, result)) {
|
||||
pdfWriter.CloseStream = false;
|
||||
pdfWriter.PageEvent = new PrintHeaderFooter { Title = pageTitle };
|
||||
pdfDocument.Open();
|
||||
@ -30,15 +41,9 @@ public class StandardPdfRenderer {
|
||||
htmlWorker.Parse(htmlViewReader);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
renderedBuffer = new byte[outputMemoryStream.Position];
|
||||
outputMemoryStream.Position = 0;
|
||||
outputMemoryStream.Read(renderedBuffer, 0, renderedBuffer.Length);
|
||||
}
|
||||
|
||||
return renderedBuffer;
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user