iTextSharper与.Net核心使用iTextSharpLGPLv2.Core

时间:2018-05-21 13:38:18

标签: c# asp.net-web-api .net-core itext

我正在尝试使用iTextSharpLGPLv2.Core nuget库将HTML文档转换为PDF。

我面临的问题是HTMLWorker不再支持iTextSharper了。

以下是我的代码。

StringReader sr = new StringReader(sb.ToString());            
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);

        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        using (MemoryStream memoryStream = new MemoryStream())
        {
        PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
        pdfDoc.Open();

        htmlparser.Parse(sr);
        pdfDoc.Close();

        byte[] bytes = memoryStream.ToArray();
        memoryStream.Close();



            FileStream fs = new FileStream(@"d:\REPORT.pdf", FileMode.OpenOrCreate);
            fs.Write(pdfBytes, 0, pdfBytes.Length);
            fs.Close();
        }

iTextSharper for .Net core的替代方案? 或任何其他方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

请注意,不允许人们推荐工具   或Stack Overflow上的库。您的问题可能会被关闭   出于这个原因的偏离主题。

您的问题还有另一个问题:没有 iTextSharper 这样的东西。我创建了 iText 库(用Java编写),并在2000年发布了该PDF库的0.30版本。几年后创建了一个C#版本。它最初被称为 iTextSharp NOT iTextSharper!)。但是,在尝试为这些名称注册时,我们获得了iTextⓇ这个名称的商标,但是一家名为夏普的公司并不希望我们继续使用名称iTextSharp。因此,我们将iTextSharp的名称更改为iText for .NET。

今天,我们有 iText for Java iText for .NET 。我们不再谈论iTextSharp,你也不应该。我也不明白为什么人们会谈论iTextSharper。 iText是商标名称;应该没有混淆。

有几个人分叉了iText,而iTextSharpLGPLv2.Core就是其中一个分叉。使用这样一个分支(例如你)的人通常是人们创建分支经常高估自己并低估维护软件库的努力这一事实的受害者。我的建议?如果仍然积极维护原始项目,请远离叉子。仅当原始项目所有者放弃他们的项目时,福克斯才有用。

  

长话短说:你应该使用真实的东西,而不是副本或分叉。

如果您想将HTML转换为PDF,可以使用iText 7pdfHTML add-on。请咨询官方网站,您将找到HTML to PDF tutorial。本教程中的所有示例都是Java,但.NET开发人员将这些示例转换为C#非常容易。它主要是将以小写字符开头的方法更改为以大写字符开头的同名方法。

重要提示:我是iText PDF库的原始开发者和iText公司的创始人。