You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装iText7.Bouncy-Castle-Adapter后VB.NET运行iText7报错求助

解决iText7 8.0.2在VB.NET中实例化PdfWriter的类型初始化异常

错误原因

你遇到的TypeInitializationException和TypeLoadException是因为安装的iText7相关包版本不兼容:单独安装itext包后手动添加的iText7.Bouncy-Castle-Adapter与itext.bouncy-castle-connector版本不匹配,导致BouncyCastleDefaultFactory类的GetDigestAlgorithmOid方法缺失必要实现。iText7 8.x版本已弃用旧的iText7.Bouncy-Castle-Adapter,改用itext.bouncy-castle-connector作为标准连接器,且必须保证所有依赖包版本一致。

解决步骤

  • 卸载现有冲突包
    打开NuGet控制台,执行以下命令彻底卸载现有包及关联依赖:

    Uninstall-Package itext -RemoveDependencies
    Uninstall-Package iText7.Bouncy-Castle-Adapter -RemoveDependencies
    

    也可以在NuGet包管理器界面手动删除这些包。

  • 安装正确的包组合
    直接安装iText7元包,它会自动拉取所有兼容的依赖组件(包括正确版本的BouncyCastle连接器):

    Install-Package iText7 -Version 8.0.2
    
  • 验证依赖版本
    检查NuGet包管理器,确保以下包版本均为8.0.2:

    • itext.bouncy-castle-connector
    • itext.kernel
    • itext.io
      同时不要手动升级BouncyCastle.Cryptography等配套包,保持iText7自动安装的版本即可。
  • 清理并重建项目
    右键项目选择清理,完成后执行重建,确保所有依赖文件正确复制到输出目录。

测试代码

用以下最简VB.NET代码验证修复效果:

Imports iText.Kernel.Pdf

Module Module1
    Sub Main()
        Dim outputPdfPath As String = "test.pdf"
        Using writer As New PdfWriter(outputPdfPath)
            Using pdfDoc As New PdfDocument(writer)
                pdfDoc.AddNewPage()
            End Using
        End Using
    End Sub
End Module

内容的提问来源于stack exchange,提问作者Steve Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 04:51:00