将 html 转换为 pdf 时的默认边距

问题描述 投票:0回答:1

我有这样的功能,可以将 html 转换为 pdf:

private Stream BuildPdf(string html)
        {
            var memoryStream = new MemoryStream();
            var pdfWriter = new PdfWriter(memoryStream);
            pdfWriter.SetCloseStream(false);
            var pdfDocument = new PdfDocument(pdfWriter);

            var fontProvider = new DefaultFontProvider();
            fontProvider.AddDirectory("Path/To/Fots/Folder"));
            var converterProperties = new ConverterProperties();
            converterProperties.SetFontProvider(fontProvider);
            
            var doc = HtmlConverter.ConvertToDocument(html, pdfDocument, converterProperties);

            doc.Close();
            pdfWriter.Flush();

            NumberPages(memoryStream);
            return memoryStream;
        }

html 示例:

<html>
  <style>
      body {
        /*A4*/
        width: 210mm;
        height: 297mm;
          padding: 0;
          margin: 0;
          box-sizing: border-box;
            font-family: Helvetica
            position: relative;
        }
        .content {
         margin: 20mm; 
        }
    </style>
      <head><title>Test</title></head>
       <body>
         <p class="content">HeadEng</p>
            $(Content) //Is replaced to actual contend by code
       </body>
</html>

在生成的 pdf 中,我看到“默认边距” Example of margins 我需要一种方法来删除这些默认边距、文本和文档边框之间的空白空间

我尝试使用 doc.SetMargins(0, 0, 0, 0),预计没有边距,实际结果没有任何变化。

c# itext7 html-to-pdf
1个回答
0
投票
<style>
@page {
    margin: 0;
}
</style>
© www.soinside.com 2019 - 2024. All rights reserved.