我正在使用 IronPDF 在 .NET 中生成 PDF 檔案。我希望在奇數頁和偶數頁上有不同的標題。
基于提供的 IronPDF API,每個頁面上的頁眉和頁腳必須相同。例如
using IronPdf;
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
// Add a header to every page easily
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.FontFamily = "Helvetica,Arial";
Renderer.RenderingOptions.TextHeader.FontSize = 12;
// Add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.FontFamily = "Arial";
Renderer.RenderingOptions.TextFooter.FontSize = 10;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
來源:https : //ironpdf.com/tutorials/html-to-pdf/
有沒有辦法改變這種行為,以便我可以在偶數/奇數頁面或特定頁面上自定義頁眉和頁腳?
uj5u.com熱心網友回復:
從 HTML 渲染 PDF 時,我同意頁眉/頁腳選項是有限的。
不過有一個解決方案:在呈現 pdf 后添加頁眉和頁腳。
IronPDF 渲染創建一個
IronPDF.PdfDocument類實體。此類
IronPDF.PdfDocument實體具有僅將頁眉和頁腳添加到特定頁碼的方法。
這種方法支持將基于文本和 HTML 的標題添加到 PDF。
MSDN 樣式檔案:
- IronPDF.PdfDocument.AddTextHeaders
- IronPDF.PdfDocument.AddTextFooters
- IronPDF.PdfDocument.AddHtmlHeaders
- IronPDF.PdfDocument.AddHtmlFooters
代碼示例:
// PM> Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
using System.Linq;
//First create a PDF or Load an existing PDF using IronPdf.PdfDocument.Load()
var Renderer = new IronPdf.ChromePdfRenderer();
var multi_page_html = @"
<p> This is 1st Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>";
using IronPdf.PdfDocument pdfdoc = Renderer.RenderHtmlAsPdf(multi_page_html);
// Create a Header
var header = new HtmlHeaderFooter();
header.HtmlFragment = "THIS IS HEADER {page} of {total-pages}";
// Create a Page Range 0 .. 7
var allPageIndexes = Enumerable.Range(0, pdfdoc.PageCount);
// Example 1
// Apply header to even page index only. (page number will be odd number because index start at 0 but page number start at 1)
var evenPageIndexes = allPageIndexes.Where(i => i % 2 == 0);
pdfdoc.AddHtmlHeaders(header, 1, evenPageIndexes);
pdfdoc.SaveAs("EvenPages.pdf");
// Example 2
//Apply header to odd page index only. (page number will be even number because index start at 0 but page number start at 1)
var oddPageIndexes = allPageIndexes.Where(i => i % 2 != 0);
pdfdoc.AddHtmlHeaders(header, 1, oddPageIndexes);
pdfdoc.SaveAs("OddPages.pdf");
// Example 3
// Apply header to last page only.
var lastPageIndex = new List<int>() { pdfdoc.PageCount - 1 };
pdfdoc.AddHtmlHeaders(header, 1, lastPageIndex);
pdfdoc.SaveAs("LastPageOnly.pdf");
// Example 4
// Apply header to first page only.
var firstPageIndex = new List<int>() { 0 };
pdfdoc.AddHtmlHeaders(header, 1, firstPageIndex);
pdfdoc.SaveAs("FirstPageOnly.pdf");
// Example 5
// Skip the first page.
var skipFirstPageIndexes = allPageIndexes.Skip(1);
var fileName = "SkipFirstPage.pdf";
pdfdoc.AddHtmlHeaders(header, 1, skipFirstPageIndexes);
pdfdoc.SaveAs("SkipFirstPage.pdf");
// Example 6
// Skip first page and make second pages label as 1.
var skipFirstPageIndexes = allPageIndexes.Skip(1);
pdfdoc.AddHtmlHeaders(header, 0, skipFirstPageIndexes);
pdfdoc.SaveAs("SkipFirstPageAndDontCountIt.pdf");
來源:https : //ironpdf.com/examples/adding-headers-and-footers-advanced/相關問題(但不完全相同):IronPdf - 如何在將 HTML 轉換為 PDF 時使頁眉和頁腳不覆寫頁面內容?
uj5u.com熱心網友回復:
// PM> Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
using System.Linq;
//First create a PDF or Load an existing PDF using IronPdf.PdfDocument.Load()
var Renderer = new IronPdf.ChromePdfRenderer();
var multi_page_html = @"
<p> This is 1st Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 2nd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 3rd Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 4th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 5th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 6th Page</p>
<div style = 'page-break-after: always;' ></div>
<p> This is 7th Page</p>";
using IronPdf.PdfDocument pdfdoc = Renderer.RenderHtmlAsPdf(multi_page_html);
// Create a Header
var header = new HtmlHeaderFooter();
header.HtmlFragment = "THIS IS HEADER {page} of {total-pages}";
// Create a Page Range 0 .. 7
var allPageIndexes = Enumerable.Range(0, pdfdoc.PageCount);
// Example 1
// Apply header to even page index only. (page number will be odd number because index start at 0 but page number start at 1)
var evenPageIndexes = allPageIndexes.Where(i => i % 2 == 0);
pdfdoc.AddHtmlHeaders(header, 1, evenPageIndexes);
pdfdoc.SaveAs("EvenPages.pdf");
// Example 2
//Apply header to odd page index only. (page number will be even number because index start at 0 but page number start at 1)
var oddPageIndexes = allPageIndexes.Where(i => i % 2 != 0);
pdfdoc.AddHtmlHeaders(header, 1, oddPageIndexes);
pdfdoc.SaveAs("OddPages.pdf");
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/346231.html
標籤:C# pdf pdf生成 html 到 pdf 铁pdf
上一篇:UWPC#將png轉換為pdf
