PDFSharp 可以从 Net Core 中的 Html 字符串创建 Pdf 文件吗?
Can PDFSharp create Pdf file from a Html string in Net Core?
这听起来可能 "easy" 但我还没有找到真正的解决方案。我需要从 .Net Core 上的 API 中的 Html 字符串创建 Pdf 文件。
图书馆必须是免费的(不是付款或任何相关的)。
我发现 PDFSharp 是一个不错的选择,但现在我发现 PDFSharp 不适用于 .Net Core 并且它不允许注入 Html 字符串。
那么,对于这种情况,PDFSharp 是一个不错的选择吗?或者你会推荐我什么其他图书馆?
非常感谢。
我最近 运行 遇到了完全相同的问题。目前在 .NET Core 中处理 PDF 的方法非常有限。要通过它们...
- PDF Sharp - 不支持 .NET Core/Standard。
- SelectPDF - 在其网站页脚中隐藏了 "free" 社区版本。在大多数情况下应该是可用的。 https://selectpdf.com/community-edition/
- IronPDF - "Enterprise" 定价。 1500 美元起
- WKHTMLTOPDF - 这实际上只是一个可执行文件,有人在 运行 exe 的顶部编写了一个 C# 包装器。不是一个很好的解决方案。
- iTextSharp - 有 "hidden" 定价,但显然这是唯一一个专门 运行 on Linux under .NET Core(如果这对你很重要)。
IMO 唯一可以满足您需要的免费软件是 SelectPDF。这是在说些什么,因为我不评价图书馆或 API。但它是免费的,而且有效。
更多信息:https://dotnetcoretutorials.com/2019/07/02/creating-a-pdf-in-net-core/
如果有人需要这个选项,这是我决定使用的最终解决方案。
var url = "";
var chromePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
var output = Path.Combine(Environment.CurrentDirectory, "printout.pdf");
using (var p = new Process())
{
p.StartInfo.FileName = chromePath;
p.StartInfo.Arguments = $"--headless --disable-gpu --print-to-pdf={output} {url}";
p.Start();
p.WaitForExit();
}
谢谢@leonard-AB
安装 NuGet 包 - Polybioz.HtmlRenderer.PdfSharp.Core
https://www.nuget.org/packages/Polybioz.HtmlRenderer.PdfSharp.Core/1.0.0?_src=template
using PdfSharpCore;
using PdfSharpCore.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
var document = new PdfDocument();
var html = "<html><body style='color:black'>PMKJ</body></html>";
PdfGenerator.AddPdfPages(document, html , PageSize.A4);
Byte[] res = null;
using (MemoryStream ms = new MemoryStream())
{
document.Save(ms);
res = ms.ToArray();
}
这听起来可能 "easy" 但我还没有找到真正的解决方案。我需要从 .Net Core 上的 API 中的 Html 字符串创建 Pdf 文件。 图书馆必须是免费的(不是付款或任何相关的)。 我发现 PDFSharp 是一个不错的选择,但现在我发现 PDFSharp 不适用于 .Net Core 并且它不允许注入 Html 字符串。
那么,对于这种情况,PDFSharp 是一个不错的选择吗?或者你会推荐我什么其他图书馆?
非常感谢。
我最近 运行 遇到了完全相同的问题。目前在 .NET Core 中处理 PDF 的方法非常有限。要通过它们...
- PDF Sharp - 不支持 .NET Core/Standard。
- SelectPDF - 在其网站页脚中隐藏了 "free" 社区版本。在大多数情况下应该是可用的。 https://selectpdf.com/community-edition/
- IronPDF - "Enterprise" 定价。 1500 美元起
- WKHTMLTOPDF - 这实际上只是一个可执行文件,有人在 运行 exe 的顶部编写了一个 C# 包装器。不是一个很好的解决方案。
- iTextSharp - 有 "hidden" 定价,但显然这是唯一一个专门 运行 on Linux under .NET Core(如果这对你很重要)。
IMO 唯一可以满足您需要的免费软件是 SelectPDF。这是在说些什么,因为我不评价图书馆或 API。但它是免费的,而且有效。
更多信息:https://dotnetcoretutorials.com/2019/07/02/creating-a-pdf-in-net-core/
如果有人需要这个选项,这是我决定使用的最终解决方案。
var url = "";
var chromePath = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
var output = Path.Combine(Environment.CurrentDirectory, "printout.pdf");
using (var p = new Process())
{
p.StartInfo.FileName = chromePath;
p.StartInfo.Arguments = $"--headless --disable-gpu --print-to-pdf={output} {url}";
p.Start();
p.WaitForExit();
}
谢谢@leonard-AB
安装 NuGet 包 - Polybioz.HtmlRenderer.PdfSharp.Core https://www.nuget.org/packages/Polybioz.HtmlRenderer.PdfSharp.Core/1.0.0?_src=template
using PdfSharpCore;
using PdfSharpCore.Pdf;
using TheArtOfDev.HtmlRenderer.PdfSharp;
var document = new PdfDocument();
var html = "<html><body style='color:black'>PMKJ</body></html>";
PdfGenerator.AddPdfPages(document, html , PageSize.A4);
Byte[] res = null;
using (MemoryStream ms = new MemoryStream())
{
document.Save(ms);
res = ms.ToArray();
}