1

我正在使用 IronPdf 从 HTML 内容生成 Pdf 文件,我遇到的问题是,当我尝试向文档添加页眉和页脚时,它们会覆盖一些页面内容。我知道我可以将页边距设置为页眉和页脚高度的大小来解决这个问题,但在我的情况下,我必须为不同的页面使用不同的页眉和页脚(例如:首页的页眉与其他页不同,最后一页页脚与其他人不同)。

编辑:在我与 IronPdf 支持交谈后,似乎目前没有直接和干净的方法来实现所需的结果。他们说允许您为每个页面设置不同边距的功能(这将解决这种情况)正在开发队列中,但完成它需要时间。

4

1 回答 1

0

我为 Iron 软件支持工作。

如果没有足够的空间,页眉/页脚内容将覆盖 PDF 的内容。目前无法为同一个 PDF 中的不同页面设置不同的边距,尽管正在考虑未来的功能。

作为一种解决方法,您可以创建单独的 PDF,然后将它们合并在一起。

// Join Multiple Existing PDFs into a single document
var PDFs     = new List<PdfDocument>();
PDFs.Add(PdfDocument.FromFile("A.pdf"));
PDFs.Add(PdfDocument.FromFile("B.pdf"));
PDFs.Add(PdfDocument.FromFile("C.pdf"));
PdfDocument PDF =  PdfDocument.Merge(PDFs);
PDF.SaveAs("merged.pdf");

代码示例取自:Editing PDFs in C# with IronPDF

或者,您可以在 HTML 中设置边距并使用以下代码示例:

var Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.MarginTop = 5;
Renderer.RenderingOptions.MarginBottom = 5;
Renderer.RenderingOptions.MarginLeft = 5;
Renderer.RenderingOptions.MarginRight = 5;
var pdf =Renderer.RenderHtmlFileAsPdf(@"F:\body.html");

var CoverPageheader = new HtmlHeaderFooter();
CoverPageheader.HtmlFragment = "<div style='color:red; font-size:15px;font-weight:bold;'>Hello world </div>";

var header = new HtmlHeaderFooter();
header.HtmlFragment = "<div style='color:red; font-size:15px;font-weight:bold;'>other pages Header... <br> My Header </div>";

pdf.AddHTMLHeaders(header,true);
pdf.AddHTMLHeaders(CoverPageheader, false, new List<int>{ 0 });

pdf.SaveAs(@"F:\output.pdf");

使用下面编辑的 HTML:

<html>
<head>
</head>
<body>
<div> this is the cover page</div>
<div style="page-break-before: always; margin-top: 40px;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut dictum sapien at odio ullamcorper efficitur. Nam luctus tortor enim, id consequat ex scelerisque vel. Duis vulputate, sem et faucibus auctor, diam nisi fermentum risus, a viverra purus magna nec lorem. Cras efficitur vehicula elit, et suscipit sem varius vestibulum. Etiam et laoreet augue. Etiam nulla magna, molestie nec efficitur sed, dignissim placerat felis. Fusce posuere dignissim nunc, vitae rutrum nunc tristique id. Sed molestie mi nunc, eget molestie augue sollicitudin a. Phasellus et porttitor libero. Integer ac dolor quis libero posuere varius in sit amet nisl. Maecenas ac metus a sapien bibendum malesuada in eget diam. Donec facilisis mi vel tortor pulvinar gravida. Aenean auctor nisi et augue facilisis, pellentesque blandit augue malesuada. Etiam eu ipsum a nunc vehicula pellentesque id ac metus. Fusce tincidunt sed urna in hendrerit.

Nam feugiat et nisl ac consectetur. Nunc in tellus volutpat, pulvinar libero vitae, congue orci. Aenean sit amet porta odio. Integer enim ex, maximus vitae erat sit amet, lobortis aliquam enim. Ut at odio nec eros ornare bibendum. In eget urna molestie ante mattis elementum. Mauris id sodales quam, non aliquam quam. Mauris justo nulla, varius in libero eu, interdum convallis eros. Nam efficitur ornare neque non convallis. Donec massa orci, auctor id fringilla eget, aliquet in leo. Morbi at aliquet nisl, eget commodo neque. Vestibulum vestibulum mattis neque, eget porta lorem pellentesque cursus.

Proin quis lacus in leo consequat gravida. Aenean sed ornare arcu, vel rutrum mauris. Ut arcu lacus, tincidunt a enim et, commodo elementum mi. Donec metus neque, feugiat vitae commodo eget, ullamcorper vehicula lorem. Nunc tincidunt velit sapien, id commodo lacus pretium eu. Aliquam massa tellus, ultricies ac fermentum in, cursus eu ante. Suspendisse a augue pretium, posuere nibh id, vulputate tellus. Nunc vehicula orci ac nibh sagittis tincidunt. Morbi tempus ultricies turpis, eu ullamcorper nisi.

Cras ornare dignissim felis eu tristique. Quisque aliquam magna sed nisi ultricies placerat. Proin fringilla, quam viverra consequat interdum, mauris ex malesuada sapien, id venenatis ante felis eu odio. Donec ultrices consectetur varius. Ut vel odio lorem. Aliquam condimentum tempor tristique. Proin a risus malesuada, efficitur urna at, lacinia nibh. Pellentesque consequat vulputate lorem vitae tincidunt. Proin eu congue felis, venenatis ornare elit. Etiam at nulla quis enim maximus fermentum sit amet eu dui. Morbi vel tellus eu mauris tincidunt placerat vel laoreet magna. Morbi sit amet est sit amet libero auctor accumsan. Integer ut nulla at eros volutpat euismod. Ut ullamcorper porttitor porta.

Aliquam varius velit eget enim hendrerit convallis. Suspendisse sed faucibus nisi. Nulla rhoncus orci nulla, quis pellentesque dolor sollicitudin ac. Aenean ac tincidunt turpis. Vivamus interdum dolor nec sem gravida euismod. Vestibulum blandit erat nunc, vel gravida lacus lacinia eget. Morbi faucibus purus fermentum, faucibus libero sit amet, semper tellus. Integer molestie quam nec purus tristique, et tincidunt augue hendrerit. Proin sit amet dui in nulla vestibulum mattis et euismod nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus nisi sapien, faucibus ut tincidunt nec, rutrum in sem. Phasellus iaculis, ipsum eu ultricies fringilla, ligula felis imperdiet odio, vel rutrum ipsum purus id augue.
</div>

<div style="page-break-before:always;margin-top:40px;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut dictum sapien at odio ullamcorper efficitur. Nam luctus tortor enim, id consequat ex scelerisque vel. Duis vulputate, sem et faucibus auctor, diam nisi fermentum risus, a viverra purus magna nec lorem. Cras efficitur vehicula elit, et suscipit sem varius vestibulum. Etiam et laoreet augue. Etiam nulla magna, molestie nec efficitur sed, dignissim placerat felis. Fusce posuere dignissim nunc, vitae rutrum nunc tristique id. Sed molestie mi nunc, eget molestie augue sollicitudin a. Phasellus et porttitor libero. Integer ac dolor quis libero posuere varius in sit amet nisl. Maecenas ac metus a sapien bibendum malesuada in eget diam. Donec facilisis mi vel tortor pulvinar gravida. Aenean auctor nisi et augue facilisis, pellentesque blandit augue malesuada. Etiam eu ipsum a nunc vehicula pellentesque id ac metus. Fusce tincidunt sed urna in hendrerit.

Nam feugiat et nisl ac consectetur. Nunc in tellus volutpat, pulvinar libero vitae, congue orci. Aenean sit amet porta odio. Integer enim ex, maximus vitae erat sit amet, lobortis aliquam enim. Ut at odio nec eros ornare bibendum. In eget urna molestie ante mattis elementum. Mauris id sodales quam, non aliquam quam. Mauris justo nulla, varius in libero eu, interdum convallis eros. Nam efficitur ornare neque non convallis. Donec massa orci, auctor id fringilla eget, aliquet in leo. Morbi at aliquet nisl, eget commodo neque. Vestibulum vestibulum mattis neque, eget porta lorem pellentesque cursus.

Proin quis lacus in leo consequat gravida. Aenean sed ornare arcu, vel rutrum mauris. Ut arcu lacus, tincidunt a enim et, commodo elementum mi. Donec metus neque, feugiat vitae commodo eget, ullamcorper vehicula lorem. Nunc tincidunt velit sapien, id commodo lacus pretium eu. Aliquam massa tellus, ultricies ac fermentum in, cursus eu ante. Suspendisse a augue pretium, posuere nibh id, vulputate tellus. Nunc vehicula orci ac nibh sagittis tincidunt. Morbi tempus ultricies turpis, eu ullamcorper nisi.

Cras ornare dignissim felis eu tristique. Quisque aliquam magna sed nisi ultricies placerat. Proin fringilla, quam viverra consequat interdum, mauris ex malesuada sapien, id venenatis ante felis eu odio. Donec ultrices consectetur varius. Ut vel odio lorem. Aliquam condimentum tempor tristique. Proin a risus malesuada, efficitur urna at, lacinia nibh. Pellentesque consequat vulputate lorem vitae tincidunt. Proin eu congue felis, venenatis ornare elit. Etiam at nulla quis enim maximus fermentum sit amet eu dui. Morbi vel tellus eu mauris tincidunt placerat vel laoreet magna. Morbi sit amet est sit amet libero auctor accumsan. Integer ut nulla at eros volutpat euismod. Ut ullamcorper porttitor porta.

Aliquam varius velit eget enim hendrerit convallis. Suspendisse sed faucibus nisi. Nulla rhoncus orci nulla, quis pellentesque dolor sollicitudin ac. Aenean ac tincidunt turpis. Vivamus interdum dolor nec sem gravida euismod. Vestibulum blandit erat nunc, vel gravida lacus lacinia eget. Morbi faucibus purus fermentum, faucibus libero sit amet, semper tellus. Integer molestie quam nec purus tristique, et tincidunt augue hendrerit. Proin sit amet dui in nulla vestibulum mattis et euismod nulla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vivamus nisi sapien, faucibus ut tincidunt nec, rutrum in sem. Phasellus iaculis, ipsum eu ultricies fringilla, ligula felis imperdiet odio, vel rutrum ipsum purus id augue.
    </div>

</body>
</html>
于 2021-08-05T05:48:53.833 回答