diff --git a/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer.sln b/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer.sln new file mode 100644 index 00000000..920d7fbd --- /dev/null +++ b/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34723.18 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HTML-to-PDF-Dynamic-Header-Footer", "HTML-to-PDF-Dynamic-Header-Footer\HTML-to-PDF-Dynamic-Header-Footer.csproj", "{26C09745-D149-4FFB-8B39-40CA0FAA2E64}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {26C09745-D149-4FFB-8B39-40CA0FAA2E64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26C09745-D149-4FFB-8B39-40CA0FAA2E64}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26C09745-D149-4FFB-8B39-40CA0FAA2E64}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26C09745-D149-4FFB-8B39-40CA0FAA2E64}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {05016BB2-9445-4B28-9A93-5BBE4CAE8A71} + EndGlobalSection +EndGlobal diff --git a/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer/HTML-to-PDF-Dynamic-Header-Footer.csproj b/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer/HTML-to-PDF-Dynamic-Header-Footer.csproj new file mode 100644 index 00000000..331daaa7 --- /dev/null +++ b/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer/HTML-to-PDF-Dynamic-Header-Footer.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + HTML_to_PDF_Dynamic_Header_Footer + enable + enable + + + + + + + diff --git a/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer/Program.cs b/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer/Program.cs new file mode 100644 index 00000000..3762acee --- /dev/null +++ b/HTML to PDF/Blink/HTML-to-PDF-Dynamic-Header-Footer/.NET/HTML-to-PDF-Dynamic-Header-Footer/Program.cs @@ -0,0 +1,103 @@ +using Syncfusion.Pdf; +using Syncfusion.HtmlConverter; +using Syncfusion.Pdf.Graphics; +using Syncfusion.Drawing; +using Syncfusion.Pdf.Parsing; + + +//Initialize HTML to PDF converter. +HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter(); +BlinkConverterSettings blinkConverterSettings = new BlinkConverterSettings(); +//Set Blink viewport size. +blinkConverterSettings.ViewPortSize = new Syncfusion.Drawing.Size(1280, 0); +blinkConverterSettings.Margin.Top = 50; +blinkConverterSettings.Margin.Bottom = 50; +//Assign Blink converter settings to HTML converter. +htmlConverter.ConverterSettings = blinkConverterSettings; +//Convert URL to PDF document. +PdfDocument pdfDocument = htmlConverter.Convert("https://www.syncfusion.com"); +MemoryStream stream = new MemoryStream(); +pdfDocument.Save(stream); + +PdfDocument document = new PdfDocument(); +document.PageSettings.Margins = new PdfMargins +{ + Top = 300, // Space for the header + Bottom = 300, // Space for the footer + Left = 10, + Right = 10 +}; +PdfLoadedDocument pdfLoaded = new PdfLoadedDocument(stream); +for (int i = 0; i < pdfDocument.Pages.Count; i++) +{ + // Import each page from the source document into the target document. + document.ImportPage(pdfLoaded, i); +} +document.Pages.Add(); +document.Pages.Add(); + +for (int i = 0; i < document.Pages.Count; i++) +{ + PdfPage page = document.Pages[i]; + + if (i % 2 == 0) // Even pages (0-based index, so 0 is the first page) + { + PdfTemplate oddHeader = createOddPageHeader(); + PdfTemplate oddFooter = createOddPageFooter(); + // Add even page header and footer + page.Graphics.DrawPdfTemplate(oddHeader, new PointF(0, 0)); + page.Graphics.DrawPdfTemplate(oddFooter, new PointF(0, page.Size.Height - 50)); + } + else // Odd pages + { + PdfTemplate evenHeader = createEvenPageHeader(); + PdfTemplate evenFooter = createEvenPageFooter(); + // Add odd page header and footer + page.Graphics.DrawPdfTemplate(evenHeader, new PointF(0, 0)); + page.Graphics.DrawPdfTemplate(evenFooter, new PointF(0, page.Size.Height - 50)); + } +} + +//Save and close the PDF document. +document.Save("../../../HTML-to-PDF.pdf"); +document.Close(true); + +// Method to create odd-page header +static PdfTemplate createOddPageHeader() +{ + PdfTemplate headerTemplate = new PdfTemplate(PdfPageSize.A4.Width, 50); + PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 10); + PdfBrush brush = new PdfSolidBrush(Color.Black); + headerTemplate.Graphics.DrawString("Odd Page Header", font, brush, new PointF(10, 10)); + return headerTemplate; +} + +// Method to create even-page header +static PdfTemplate createEvenPageHeader() +{ + PdfTemplate headerTemplate = new PdfTemplate(PdfPageSize.A4.Width, 50); + PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 10); + PdfBrush brush = new PdfSolidBrush(Color.Gray); + headerTemplate.Graphics.DrawString("Even Page Header", font, brush, new PointF(10, 10)); + return headerTemplate; +} + +// Method to create odd-page footer +static PdfTemplate createOddPageFooter() +{ + PdfTemplate footerTemplate = new PdfTemplate(PdfPageSize.A4.Width, 50); + PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 10); + PdfBrush brush = new PdfSolidBrush(Color.Black); + footerTemplate.Graphics.DrawString("Odd Page Footer", font, brush, new PointF(10, 10)); + return footerTemplate; +} + +// Method to create even-page footer +static PdfTemplate createEvenPageFooter() +{ + PdfTemplate footerTemplate = new PdfTemplate(PdfPageSize.A4.Width, 50); + PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 10); + PdfBrush brush = new PdfSolidBrush(Color.Gray); + footerTemplate.Graphics.DrawString("Even Page Footer", font, brush, new PointF(10, 10)); + return footerTemplate; +} \ No newline at end of file