ASP.NET Core 6.0 中最好的 HTML 到 PDF 转换器

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

我想在我的网站(ASP.NET Core 6.0)中将html转换为pdf,但我找不到解决方案。
它应该通过指定 url 来创建。

在 ASP.NET MVC 5 时代,我使用过名为 Tuespeckin 的库。

有没有什么解决方案,既免费又优雅,可以在 ASP.NET Core 6.0 中工作?

虽然下面的文章很有帮助,但可能有点过时了。
PDFSharp可以在Net Core中从Html字符串创建Pdf文件吗?

第一个答案提到 SelectPDF,但我希望有更现代的方法(如果有的话)。

asp.net-core pdf-generation
1个回答
2
投票

您可以使用

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 转换器,但我还没有找到它们,也没有使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.