c# - 将 HTML 标题附加到 Spire PDF
问题描述
我正在使用 Spire PDF 将我的 HTML 模板转换为 PDF 文件。这是相同的示例代码:
class Program
{
static void Main(string[] args)
{
//Create a pdf document.
PdfDocument doc = new PdfDocument();
PdfPageSettings setting = new PdfPageSettings();
setting.Size = new SizeF(1000,1000);
setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);
PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();
htmlLayoutFormat.IsWaiting = true;
String url = "https://www.wikipedia.org/";
Thread thread = new Thread(() =>
{ doc.LoadFromHTML(url, false, false, false, setting,htmlLayoutFormat); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();
//Save pdf file.
doc.SaveToFile("output-wiki.pdf");
doc.Close();
//Launching the Pdf file.
System.Diagnostics.Process.Start("output-wiki.pdf");
}
}
这按预期工作,但现在我想将页眉和页脚添加到所有页面。虽然可以使用 SprirePdf 添加页眉和页脚,但我的要求是将 HTML 模板添加到我无法实现的页眉中。有没有办法将 html 模板呈现为页眉和页脚?
解决方案
Spire.PDF 提供了一个类 PdfHTMLTextElement 支持在 PDF 页面上呈现简单的 HTML 标签,包括 Font、B、I、U、Sub、Sup 和 BR。您可以使用以下代码片段将 HTML 附加到现有 PDF 文档的页眉空间。据我所知,没有办法使用 Spire.PDF 将复杂的 HTML 仅作为文档的一部分呈现。
//load an existing pdf document
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
//loop through the pages
for (int i = 0; i < doc.Pages.Count; i++)
{
//get the specfic page
PdfPageBase page = doc.Pages[i];
//define HTML string
string htmlText = "<b>XXX lnc.</b><br/><i>Tel:889 974 544</i><br/><font color='#FF4500'>Website:www.xxx.com</font>";
//render HTML text
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 12);
PdfBrush brush = PdfBrushes.Black;
PdfHTMLTextElement richTextElement = new PdfHTMLTextElement(htmlText, font, brush);
richTextElement.TextAlign = TextAlign.Left;
//draw html string at the top white space
richTextElement.Draw(page.Canvas, new RectangleF(70, 20, page.GetClientSize().Width - 140, page.GetClientSize().Height - 20));
}
//save to file
doc.SaveToFile("output.pdf");
推荐阅读
- spring-boot - /dev/stdout 权限被拒绝 Tomcat 访问日志
- javascript - 从 JSON API 请求中获取值并将其显示为网页中的文本
- php - PHP:如何检查服务器是否在本地运行
- html - 了解内联元素?
- javascript - 根据另一个状态道具的 Onchange 更改组件状态道具
- excel - 删除与清除内容 VB.net
- powershell - 将字符串转换为 PowerShell 日期和时间格式
- python - 如何从网站访问 Python 中的本地文件
- magnolia - Magnolia - 跨领域验证
- javascript - 如何使用 asp.net 4.0 在网格视图中显示 html 预览