【问题标题】:How to use PDFbox dll in QTP vbscript如何在 QTP vbscript 中使用 PDFbox dll
【发布时间】:2013-02-06 19:28:41
【问题描述】:

我需要在 QTP vbscript 中使用 PDFbox dll,最初我尝试在 ikvmbin-7.2.4630.5 的帮助下将 PDFbox jar 转换为相应的 PDFbox dll,它成功了,这样我就可以在 c# 和 VB.NET 中使用 pdfbox.dll同样,我需要将它与 vbscript - QTP 一起使用。最初尝试使用 DotNetFactory.CreateInstance 访问转换后的 PDFbox.dll

Set TestPDFDoc = DotNetFactory.CreateInstance("org.apache.pdfbox.pdmodel.PDDocument","D:\\PDF\\PDF\\pdfbox-1.7.1.dll")

在执行时它会抛出我,但它会抛出我 在任何加载的程序集中找不到类型“org.apache.pdfbox.pdmodel.PDDocument”

谁能帮帮我 谢谢

【问题讨论】:

  • 你真的需要在 dll 路径中转义反斜杠吗?
  • 是的,我需要提供 DLL 的路径,因为它是使用 IVKM 从 jar 转换为 dll 的自定义 DLL
  • 但您是否需要转义反斜杠,即使用\\ 而不仅仅是\ ?我不知道 QTP,但是在 VBScript 中,你不需要转义反斜杠。
  • 仍然会抛出类似的错误消息:无法加载文件或程序集 'file:///D:\PDF\PDF\pdfbox-1.7.‌​1.dll' 或其之一依赖关系。系统找不到指定的文件。
  • 尝试删除file:// 部分,"D:\PDF\PDF\pdfbox-1.7.1.dll" 工作吗?

标签: dll vbscript qtp pdfbox


【解决方案1】:

我认为您不需要转义反斜杠,即使用 \\ 而不仅仅是 \ ?我不知道 QTP,但是在 VBScript 中,你不需要转义反斜杠。

我试试

Set TestPDFDoc = _
    DotNetFactory.CreateInstance("org.apache.pdfbox.pdmodel.PDDocument", _
                                 "D:\PDF\PDF\pdfbox-1.7.1.dll")

【讨论】:

    【解决方案2】:

    很可能是因为找不到您的 .dll 引用的一个或多个程序集而发生错误。使用.NET dependency viewer tool(例如,开源ILSpy)来确定引用的程序集并将它们放置到与pdfbox-1.7.1.dll相同的文件夹中。我猜你需要在你的 .dll 旁边放置一些 IKVM.NET 程序集。

    【讨论】:

    • @感谢 helen 的回复!你知道如何将 IVKM.NET.core.dll 放在我们的 dll 旁边吗,我尝试使用 Set TestPDFDoc = _ DotNetFactory.CreateInstance("org.apache.pdfbox.pdmodel.PDDocument", "D:\PDF\PDF \pdfbox-1.7.1.dll","D:\ikvmbin-7.2.4630.5\ikvm-7.2.4630.5\bin\IKVM.OpenJDK.Core.dll") 但它也失败了
    • @Ganeshja:将所有需要的程序集复制到 D:\PDF\PDF 文件夹。
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    相关资源
    最近更新 更多