Powershell – parsingPDF文件的文字或图像

使用Powershell并运行PowerGUI。 我有一个PDF文件,我需要通过search,以查找是否有一个特定页面的内容中引用的附件。 或者,或者我需要search图像,例如文档中的Microsoft Word或Excel图标或PDF图标。

我正在使用下面的代码来阅读页面:

Add-Type -Path "c:\itextsharp-all-5.4.5\itextsharp-dll-core\itextsharp.dll" $reader = New-Object iTextSharp.text.pdf.pdfreader -ArgumentList "c:\files\searchfile.pdf" for ($page = 1; $page -le 3; $page++) { $lines = [char[]]$reader.GetPageContent($page) -join "" -split "`n" foreach ($line in $lines) { if ($line -match "^\[") { $line = $line -replace "\\([\S])", $matches[1] $line -replace "^\[\(|\)\]TJ$", "" -split "\)\-?\d+\.?\d*\(" -join "" } } } 

但是,上面给出了一些文本,但大多是不可打印的字符。

如何使用PowershellsearchPDF文件search文字(如“.doc”或“.xlsx”)? 是否可以searchPDF的graphics(如Excel或Word图标)?

在没有看到PDF原始内容的情况下,给予特定的帮助并不容易,所以如果您可以共享一个样本PDF或其内容将是有益的。

一旦您知道在stream中查找什么内容,您可以通过逐行读取文件并使用-match运算符进行search:

 $file = [io.file]::ReadAllLines('C:\test​.pdf') $title = ($file -match "<rdf:li")[0].Split(">")[1].Split("<")[0] $description = ($file -match "<rdf:li")[2].Split(">")[1].Split("<")[0] write-host ("Title: " + $title) write-host ("Description: " + $description) 

我非常怀疑这个文件的内容会告诉你不仅仅是在特定的页面坐标上存在一个图像(虽然我不是一个PDF专家),但它也可能包含二进制文件stream,在这种情况下,你可能能够保存该stream作为一个文件(我还没有尝试过)。