我希望创建一个带有任务调度程序的自动Powershell脚本,对自动生成的PDF进行大量重命名,然后将它们保存到第二个文件夹中。原来的名字是不相关的,但通常以0013238974.pdf的形式出现。每个文件都需要根据文件中包含的文本重命名。示例:
TEXT TEXT TEXT
$ACCT_ID
TEXT TEXT TEXT因此,文件的新名称需要是$ACCT_ID.pdf,然后保存在新的目标中。我对这个动作没意见,那只是一个简单的动作
Get-ChildItem -Path C:\Original\PDF\Generation\Folder -Include *.pdf -Recurse |
copy-item -destination C:\The\Folder\I\Need\Them\In但在此之后,我很难从已经生成的PDF中提取信息,并将重命名的版本保存为$ACCT_ID.pdf。
我考虑通过一个单独的PDF打印命令来运行它,而不是打开/重新保存,但这并不能解决我的$ACCT_ID提取问题。
谢谢你对此的洞察力。
发布于 2014-05-09 20:41:41
在PowerShell中没有任何读取PDF文件的内置功能,所以最好的选择是使用第三方.NET组件。有几个商业的,至少也有一些免费的开源的选择。
下面是几行使用iTextSharp读取PDF的示例代码:
Add-Type -Path .\itextsharp.dll
$pdfReader = New-Object iTextSharp.text.pdf.PdfReader("C:\file.pdf")
$textFromFirstPage = [iTextSharp.text.pdf.parser.PdfTextExtractor]::GetTextFromPage($pdfReader, 1)
$pdfReader.Dispose()当然,之后如何查找帐户id取决于文件的文本。
https://stackoverflow.com/questions/23573204
复制相似问题