我想在我的网站(ASP.NET Core 6.0)中将html转换为pdf,但我找不到解决方案。
它应该通过指定 url 来创建。
在 ASP.NET MVC 5 时代,我使用过名为 Tuespeckin 的库。
有没有什么解决方案,既免费又优雅,可以在 ASP.NET Core 6.0 中工作?
虽然下面的文章很有帮助,但可能有点过时了。
PDFSharp可以在Net Core中从Html字符串创建Pdf文件吗?
第一个答案提到 SelectPDF,但我希望有更现代的方法(如果有的话)。
您可以使用
Syncfusion
将 html 转换为 pdf。
首先,安装
Syncfusion.HtmlToPdfConverter.Net.Windows
NuGet 包。
然后,在控制器中编辑相应的方法:
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult ExportToPDF()
{
HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();
//Convert URL to PDF document
PdfDocument document = htmlConverter.Convert("https://www.syncfusion.com");
//Create memory stream
MemoryStream stream = new MemoryStream();
//Save the document
document.Save(stream);
return File(stream.ToArray(), System.Net.Mime.MediaTypeNames.Application.Pdf, "HTML-to-PDF.pdf");
}
}
不要忘记添加命名空间:
using Syncfusion.Pdf;
using Syncfusion.HtmlConverter;
最后,在
Index.cshtml
中添加呼叫:
@{
Html.BeginForm("ExportToPDF", "Home", FormMethod.Post);
{
<div>
<input type="submit" value="Convert HTML to PDF" style="width:250px;height:27px" />
</div>
}
Html.EndForm();
}
您可以在控制器方法中更改要下载的URL页面:
PdfDocument document = htmlConverter.Convert("Your Url");
更多详情,您可以参考此文档。
更新:
是的,它实际上并不是开源的,您需要获得许可证密钥才能删除它(只有30天免费试用)。
免费有效的首选其实就是SelectPDF。
如果实在不想用,可以选择以下两个:
木偶师夏普: 它是一个无头 chrome 实例,可以捕获 pdf,并且有一个很好的 C# 库 (Puppeteer Sharp)。
jsPDF: 这也是开源使用的转换工具。
仅我个人意见,我认为这两个的体验不如SelectPDF。也许还有其他免费且最新的 PDF 转换器,但我还没有找到它们,也没有使用它们。