在 python 中使用 IornPdf dll

use IornPdf dll in python

我正在尝试将 IornPdf dll (https://ironpdf.com/) 集成到 python。 我正在使用 Python.Net (pip install pythonnet) 在 python.

中加载 dll

I've kept the IronPdf.DLL in (C:\Users<my-user>\Documents).

我已经在 64 位版本的 python3.7 和 32 位版本的 python3.9(同一系统)中尝试了以下代码。

两种情况下都出现 FileNotFoundException。

D:\>python
    Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
    import clr
    import sys
    clr.AddReference("System.Windows.Forms")    // Its working

    sys.path.append(r'C:\Users\<my-user>\Documents')
    clr.AddReference(r"C:\Users\<my-user>\Documents\IronPdf")
    clr.AddReference("C:\Users\<my-user>\Documents\IronPdf")
    clr.AddReference("C:\Users\<my-user>\Documents\IronPdf.DLL")
    clr.AddReference("IronPdf.DLL")
    clr.AddReference("IronPdf.dll")
    clr.AddReference("IronPdf")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
System.IO.FileNotFoundException: Unable to find assembly 'IronPdf'.
   at Python.Runtime.CLRModule.AddReference(String name)

 >> C:\Users\a\AppData\Local\Programs\Python\Python39-32\python
    Python 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:04:37) [MSC v.1929 32 bit (Intel)] on win32
 >> same error here too

我创建了一个示例 dll,并且 AddReference 工作正常,但无法使用其中定义的 class 和函数。

using System;

namespace MathLibrary
{
    public class Class1
    { 
      ......
    }
}

D:> python
import clr
import sys
sys.path.append('path to the dll')
clr.AddReference("MathLibrary")
<System.Reflection.RuntimeAssembly object at 0x000001C7B5BAE708>
from MathLibrary import Class1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'MathLibrary

'

也许 windows 安全服务阻止了 dll.. 它对我有用!

Windows 无法从“外部资源”加载。为了解决这个问题,我做了:

  1. 右键单击 .dll
  2. “属性”
  3. 在“常规”下,单击“取消阻止”

还要确保主机上存在正确的 .Net 运行时。