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

iText 7.7.1.16初始化PdfDocument时报Cannot open pdf document错误

问题根因
  • 你遇到的报错本质是iText 7 v7.7.1.16强依赖的Common.Logging程序集加载失败,和PDF文件本身的权限、完整性无关。
  • iText 7该版本编译时强绑定了Common.Logging 3.4.1.0版本,即使你项目中已经添加了Common.Logging引用,只要出现以下任意一种情况都会触发加载失败:
    • 引用的Common.Logging版本和3.4.1.0不匹配,且没有配置程序集绑定重定向
    • 引用的Common.Logging的签名PublicKeyToken和要求的af08829b84f0328e不一致
    • 项目目标平台和Common.Logging、iText 7的编译平台不匹配(比如项目设为32位但引用了64位的程序集)
解决方案

方案1:匹配Common.Logging版本+配置绑定重定向

如果你的项目没有特殊的Common.Logging版本要求,直接通过NuGet安装3.4.1版本的Common.Logging即可直接解决问题。
如果必须使用其他版本的Common.Logging,在项目配置文件(桌面项目为App.config,Web项目为Web.config)的<runtime>节点下添加程序集绑定重定向规则:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-9.9.9.9" newVersion="你项目实际引用的Common.Logging版本号" />
  </dependentAssembly>
</assemblyBinding>

方案2:检查程序集平台一致性

打开项目属性→「生成」选项卡,确认「平台目标」设置和你引用的iText 7、Common.Logging的编译平台一致:

  • 优先设置为Any CPU,取消不必要的「首选32位」勾选
  • 如果必须指定x86/x64平台,确保所有依赖的程序集都对应对应平台版本

方案3:验证程序集签名

打开Visual Studio开发者命令提示符,执行命令sn -T 你本地引用的Common.Logging.dll文件路径,确认输出的公钥令牌和报错中的af08829b84f0328e一致,若不一致替换为对应签名的Common.Logging版本即可。


内容的提问来源于stack exchange,提问作者Lab Lsr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:54:03