我有这样的功能,可以将 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 中,我看到“默认边距” 我需要一种方法来删除这些默认边距、文本和文档边框之间的空白空间
我尝试使用 doc.SetMargins(0, 0, 0, 0),预计没有边距,实际结果没有任何变化。
<style>
@page {
margin: 0;
}
</style>