EvoPDF页边距设置成HTML

EvoPDF page margins set into the HTML

我正在使用 EvoPDF 将 HTML 保存到 PDF 文件。 HTML 包含长文本(可以包含列表、表格等)。我想添加页边距,但我不想使用 pdfConverter.PdfDocumentOptions.{Bottom/Top}Margin - 属性,我想将页边距设置为 HTML(类似于 Microsoft Word,我在其中设置页面大小和边距和文本自动移动到下一页,该页面之前已设置边距)。我预览了他们的 Help page,但找不到相关信息。

我的转换代码是:

        EvoPdf.HtmlToPdf.PdfConverter pdfConverter = new EvoPdf.HtmlToPdf.PdfConverter();
        pdfConverter.LicenseKey = System.Configuration.ConfigurationManager.AppSettings["EvoHtmlToPdfLicence"];
        pdfConverter.PdfDocumentOptions.PdfPageSize = EvoPdf.HtmlToPdf.PdfPageSize.Letter;
        pdfConverter.PdfDocumentOptions.PdfPageOrientation = EvoPdf.HtmlToPdf.PdfPageOrientation.Portrait;
        byte[] pdf = pdfConverter.GetPdfBytesFromHtmlString(htmlText);

谢谢!

边距属性是全局的,因此页眉、页脚、正文都受此影响。 如果你只想影响渲染的HTML,你可以使用以下设置:

文档

  • HTML PDF 中的内容目标。 HTML 内容目标由开始呈现的 X 和 Y 坐标给出在第一个 PDF 页面和目标矩形的宽度和高度。所有值均以点表示。 1 磅是 1/72 英寸。如果您没有设置任何目标矩形,那么默认情况下,转换器将从第一页的左上角开始渲染,将尝试使用整个 PDF 页面宽度进行渲染,并将自动确定目标矩形高度,以便整个HTML 内容可见。您可以在代码中设置的属性来控制 PDF 中的 HTML 内容目标是 X、Y、宽度和高度。 [...]

  • HTML 内容顶部和底部间距。 使用这些选项,您可以为 HTML 设置顶部和底部填充内容。例如,当您想要在 PDF 页眉或页脚与主要内容之间引入间距时,这会很有用。您可以在代码中设置以控制顶部和底部间距的属性是 TopSpacing 和 BottomSpacing。 [...]

代码示例:

// Category: HTML Content Destination and Spacing Options
// Set HTML content destination in PDF page
if (xLocationTextBox.Text.Length > 0)
    htmlToPdfConverter.PdfDocumentOptions.X = float.Parse(xLocationTextBox.Text);
if (yLocationTextBox.Text.Length > 0)
    htmlToPdfConverter.PdfDocumentOptions.Y = float.Parse(yLocationTextBox.Text);
if (contentWidthTextBox.Text.Length > 0)
    htmlToPdfConverter.PdfDocumentOptions.Width = float.Parse(contentWidthTextBox.Text);
if (contentHeightTextBox.Text.Length > 0)
    htmlToPdfConverter.PdfDocumentOptions.Height = float.Parse(contentHeightTextBox.Text);

// Set HTML content top and bottom spacing or leave them not set to have no spacing for the HTML content
htmlToPdfConverter.PdfDocumentOptions.TopSpacing = float.Parse(topSpacingTextBox.Text);
htmlToPdfConverter.PdfDocumentOptions.BottomSpacing = float.Parse(bottomSpacingTextBox.Text);