asp.net 在Dotnet 7中将Html字符串转换为PDF,无警告

5cg8jx4n  于 2023-02-06  发布在  .NET
关注(0)|答案(1)|浏览(159)

我想把一个html字符串转换成byte[] pdf格式,然后把它作为一个下载文件发送出去,但是我看到的所有库要么有依赖性问题,要么不能工作,并给予类似“System.Drawing.Common在这个平台上不受支持"的错误。
我正在开发Ubuntu Dotnet版本7.0.102
一些软件包给予警告,如-
“软件包'PDFsharp 1.32.3057'是使用'.NETFramework,版本=v4.6.1,.NETFramework,版本=v4.6.2,.NETFramework,版本=v4.7,.NETFramework,版本= v4.7.1,.NETFramework,版本= v4.7.2,.NETFramework,版本=v4.8,. NETFramework,版本= v4.7.1,.NETFramework,版本=v4.7.2,.Version=v4.8.1“而不是项目目标framework”net7.0“。此包可能与您的项目不完全兼容。”
这阻止了我在使用dotnet watch时能够使用热重新加载功能,它要求我在每次更改时重新启动服务器。

kpbwa7wx

kpbwa7wx1#

您可以使用iTextSharp库来实现这一点。
请参考以下代码片段:

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;

namespace HTMLToPDFExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Your string HTML here
            string html = @"<html><body>
                                <h1>Example HTML to PDF Conversion</h1>
                                <p>This is an example of how to convert an HTML string to a PDF document.</p>
                            </body></html>";
            string pdfFile = "example.pdf";

            using (var ms = new MemoryStream())
            {
                using (var doc = new Document(PageSize.A4))
                {
                    using (var writer = PdfWriter.GetInstance(doc, ms))
                    {
                        doc.Open();
                        using (var sr = new StringReader(html))
                        {
                            var htmlContext = new HTMLWorker(doc);
                            htmlContext.Parse(sr);
                        }
                        doc.Close();
                    }
                }
                File.WriteAllBytes(pdfFile, ms.ToArray());
            }
        }
    }
}

相关问题