wc19840730 2025-04-21 19:32 采纳率: 100%
浏览 25
已结题

NET8.0下使用iTextSharp的问题

手里的程序在升级NET8.0的过程中遇到个很奇怪的问题。

之前的的程序用的是ITEXTSHARP来生成PDF文件,就沿用了下来。NUGET下的是iTextSharp.LGPLv2.Core这个库的。

生成完文件后,会一直被IIS占用。后台无法对生成的PDF文档进行删除、移动等操作。

即使用最简单最基础的生成一个普通PDF,也会一直被占用,所以应该不是代码问题。没有方向,是库有问题嘛?感觉应该也不是库的问题吧。各位有遇到过嘛?

 Document doc = new Document(PageSize.A4);
 PdfWriter NewWrite = PdfWriter.GetInstance(doc, new FileStream("d:\\1.pdf", FileMode.Create));
 //Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 BaseFont bf = BaseFont.CreateFont(@"c:\windows\fonts\simhei.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
 doc.Open();
 doc.Add(new Paragraph("Hello, iTextSharp in .NET 8"));
 doc.Close();  // 显式关闭文档释放资源
 doc.Dispose();
 NewWrite.Close();
 NewWrite.Dispose();
  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-04-22 09:44
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    NET8.0下使用iTextSharp的问题

    你遇到的问题可能是iTextSharp在.NET 8.0下不再支持的原因。iTextSharp是一个基于.NET Framework的库,而.NET 8.0是基于.NET Core的。iTextSharp.LGPLv2.Core库在.NET Core 3.1以下版本中是可用的,但是从.NET Core 3.1开始,iTextSharp不再支持。

    解决方案:

    1. 使用iText7:iText7是一个新的版本,支持.NET Core 3.1及以上版本。你可以使用NuGet安装iText7.LGPLv2.Core库。
    2. 使用其他PDF生成库:如果你不能升级到iText7,可以考虑使用其他PDF生成库,例如PdfSharp、Spire.Pdf等。

    代码示例:

    using iText.Kernel.Pdf;
    using iText.Kernel.Pdf.PdfWriter;
    
    // 创建PDF写入器
    PdfWriter writer = new PdfWriter("output.pdf");
    
    // 创建PDF文档
    PdfDocument pdf = new PdfDocument(writer);
    
    // 添加页面
    PdfPage page = pdf.AddNewPage();
    
    // 添加文本
    PdfCanvas canvas = new PdfCanvas(page);
    canvas.BeginText();
    canvas.ShowText("Hello, World!");
    canvas.EndText();
    
    // 保存PDF
    pdf.Close();
    

    注意:上面的代码只是一个简单的示例,实际使用中可能需要更多的配置和设置。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月1日
  • 已采纳回答 4月23日
  • 创建了问题 4月21日