0

我使用 C# .NET 3.5 开发了一个 Bentley Microstation 插件。此插件使用 itextsharp 创建 PDF 文件。

在我的情况下,在第一个 itextsharp 命令中:

PdfReader _reader = new PdfReader("...\ab.pdf");

我收到一条来自 itextsharp 的消息: 在此处输入图像描述

“无法加载 itextsharp.LicenseKey!原因:程序集无效或无法由 'Assembly.LoadForm' 加载”

在我确认此消息后,程序运行正常并且 pdf 没有错误。该消息可能是一个例外?!

如果我将 PDF 创建部分作为独立 exe 运行,则没有任何消息。

我正在寻找禁用或捕获此错误的解决方案。

edit1:这是我的代码的 iText 部分:

using iTextSharp.text.pdf;
...
PdfReader _reader = new PdfReader("D:\Test\Source.pdf");
PdfStamper _stamper = new PdfStamper(_reader, new FileStream("D:\Test\Destination.pdf", FileMode.Create));

AcroFields _fields = _stamper.AcroFields;
var _fieldKeys = _fields.Fields.Keys;

foreach (string _fieldKey in _fieldKeys)
{
    string _value = "";
    if (_DataMapping.ContainsKey(_fieldKey.Split('.').Last().Replace("[0]", "")))
        _value = _DataMapping[_fieldKey.Split('.').Last().Replace("[0]", "")];
    _fields.SetField(_fieldKey, _value);
}

_stamper.Close();
_reader.Close();

_DataMapping 是一个包含字段/值映射的字典。

4

1 回答 1

5

您需要 licensekey dll,可在此处获得:http: //developers.itextpdf.com/license-key-download

然后,您需要在任何其他 iText 方法调用之前插入以下调用:

LicenseKey.LoadLicenseFile(“path/to/itextkey.xml”)

请注意,您提到“我尝试使用 AGPL 版本”。但是,只有在您使用 XFA Worker 时才会出现此错误消息。XFA Worker 不存在于 AGPL 版本中。如果要使用 XFA Worker,则需要商业许可证。

于 2016-02-11T17:48:06.447 回答