.NET Core 3.1批处理中NReco.PdfGenerator兼容问题及替代包咨询
.NET Core 3.1 下HTML转PDF的替代方案
你遇到的NU1701警告是因为NReco.PdfGenerator 1.2.0仅针对.NET Framework开发,和.NET Core 3.1兼容性不足。以下是几个适配.NET Core 3.1的等价替代包:
DinkToPdf
基于wkhtmltopdf的.NET封装,和NReco底层依赖相同,支持跨平台,API风格接近,迁移成本低。安装对应NuGet包后,可通过以下方式生成PDF:var converter = new SynchronizedConverter(new PdfTools()); var pdfDoc = new HtmlToPdfDocument { GlobalSettings = { ColorMode = ColorMode.Color, Orientation = Orientation.Portrait, PaperSize = PaperKind.A4 }, Objects = { new ObjectSettings { HtmlContent = "<html><body><h1>测试PDF内容</h1></body></html>" } } }; byte[] pdfBytes = converter.Convert(pdfDoc); // 写入文件或处理字节流PuppeteerSharp
基于无头Chrome/Chromium,能完美渲染含JavaScript的动态HTML内容,适合复杂页面场景。使用前需下载对应平台的Chromium二进制文件,示例代码:await new BrowserFetcher().DownloadAsync(); using var browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); using var page = await browser.NewPageAsync(); await page.SetContentAsync("<html><body><h1>动态渲染的PDF</h1></body></html>"); byte[] pdfBytes = await page.PdfDataAsync(new PdfOptions { Format = PaperFormat.A4 });IronPdf
商业类库(提供免费开发版),API简洁易用,无需额外依赖第三方工具,对.NET Core支持完善。示例代码:var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>IronPdf生成的PDF</h1></body></html>"); pdf.SaveAs("output.pdf");
可根据需求选择:若需和NReco快速迁移,选DinkToPdf;处理动态JS页面选PuppeteerSharp;追求极简API选IronPdf。
内容的提问来源于stack exchange,提问作者Luis Cabrera
相关产品推荐
相关产品推荐

