Usando o script powershell abaixo, ele converteu o pdf em texto armazenado em temp.txt
file, que é usado para comparar com o nome do arquivo. O nome do arquivo é dividido usando um delimitador e, em seguida, é dito qual dos grupos deve ser usado para comparar. Isso é executado para todos os arquivos no diretório em que o arquivo termina com .pdf. Ele forneceria uma lista em error.log
dos arquivos que não correspondiam.
Tivemos que usar um .exe de terceiros para converter PDF em texto.
$path = "C:\brokenPDFs\"
$output = $path + "\output.log"
$errorpath = $path + "\error.log"
"Start:" | Out-File $output
"Start:" | Out-File $errorpath
Clear-Content $output
Clear-Content $errorpath
$exe = $path + "pdftotext.exe"
$errorcount = 0
$files = Get-ChildItem $path *.pdf
Foreach ($currentfile In $files)
{
$filename=$currentfile.Name
$splitname = $filename.split("^")
$currentUR = $splitname[0]
#write-host $currentfile.Name
&$exe $currentfile.FullName $path\temp.txt
$result = select-string -Path $path\temp.txt -Pattern $currentUR -Quiet
If ($result -eq $true)
{
$match = $currentfile.FullName
"Match on string : $currentUR in file : $match" | Out-File $output -Append
}
If ($result -eq $false)
{
$match = $currentfile.FullName
"String not found: $currentUR missing from file : $match" | Out-File $errorpath -Append
write-host "ERROR: $currentfile missing $currentUR"
$errorcount++
}
$result = $null
}
write-host "Total Errors: $errorcount"