itext7:尝试阅读 PDF 文档时出现“找不到文件”错误

itext7: Getting a 'cannot find file' error when attempting to read a PDF document

提问人:Ralf_Reddings 提问时间:11/17/2023 最后编辑:mklement0Ralf_Reddings 更新时间:11/17/2023 访问量:60

问:

我一整天都在试图解决这个问题,但我似乎一无所获。

我正在尝试使用 itext7-dotnet 阅读 pdf 文档。我能找到的所有 PowerShell 示例和教程都使用名为“itextsharp”的旧版本的库。我无法找到任何使用 itext7 或更高版本的示例或教程。

我确实找到了一些示例,但它们都使用高级 csharp 代码,例如这个问题,使用 iText7 C# 解析/阅读 PDF 文档。我不知道任何csharp。

我能够找到 itext7 的官方 .NET 文档(在 csharp 中),看起来我需要使用iText.Kernel.Pdf.PdfReader,它有类似 的方法,该文档没有代码示例。PdfReader()

但我相信我能弄清楚,无论如何都要按照文档进行操作。如果我能弄清楚如何正确加载 itext7 库。

例如,我试图按照这个问题来加载库:

$lib    = "C:\Temp\lib\netstandard2.0\itext.kernel.dll"         
[System.Reflection.Assembly]::LoadFrom($lib)       
$testDoc = [iText.Kernel.Pdf.PdfReader]::new("C:\Temp\sample.pdf")

在一小段时间里,它看起来可以工作:

GAC    Version        Location
---    -------        --------
False  v4.0.30319     C:\Temp\lib\netstandard2.0\itext.kernel.dll

但是我收到这个错误,其他尝试不断给我同样的错误:

MethodInvocationException:
Line |
   3 |  $testDoc = [iText.Kernel.Pdf.PdfReader]::new("C:\Temp\sample.pdf")
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Exception calling ".ctor" with "1" argument(s): "Could not load file or assembly 'itext.commons, Version=8.0.2.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca'. The system cannot find the file specified."

是否正确加载了库,问题是我的 PDF 文件?我尝试使用其他PDF文件,但错误不会消失。如果是库,我怎样才能正确加载这个库?

我从官方 itext7-dotnet(上面链接)发布页面 THIS 获得了库。这是一个单页 pdf 文件,带有一个文本框,上面写着“Hello World”。sample.pdf

我使用的是 Windows 11 和 PowerShell 7.3

任何帮助将不胜感激!

Powershell PDF itext itext7

评论


答:

2赞 Alin Ciovica 11/17/2023 #1

尝试加载其他依赖项:

itext.kernel.dll
itext.commons.dll
itext.io.dll
itext.kernel.xml.dll

从 https://github.com/itext/itext7-dotnet/releases

评论

0赞 Ralf_Reddings 11/18/2023
嘿,谢谢你的回答。果然,这就是我所缺少的。在也下载并添加它之后,它起作用了。现在返回一个名为 的对象。现在要找出如何处理该对象。顺便说一句,我无法在您链接到的链接下找到它,您知道我在哪里可以找到它吗?commons.dll$testDociText.Kernel.Pdf.PdfReaderitext.kernel.xml.dll
0赞 Alin Ciovica 11/21/2023
xml 功能应包含在父 itext.kernel.dll 中,因此无需包含该功能。