提问人:Ralf_Reddings 提问时间:11/17/2023 最后编辑:mklement0Ralf_Reddings 更新时间:11/17/2023 访问量:60
itext7:尝试阅读 PDF 文档时出现“找不到文件”错误
itext7: Getting a 'cannot find file' error when attempting to read a PDF document
问:
我一整天都在试图解决这个问题,但我似乎一无所获。
我正在尝试使用 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
任何帮助将不胜感激!
答:
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
$testDoc
iText.Kernel.Pdf.PdfReader
itext.kernel.xml.dll
0赞
Alin Ciovica
11/21/2023
xml 功能应包含在父 itext.kernel.dll 中,因此无需包含该功能。
评论