Obecnie mamy aplikację, która generuje dokument pdf i automatycznie nazywa go na podstawie {UniqueID-DocCode-StartDate-StartTime}
, wszystkie te dane pochodzą z bazy danych za pośrednictwem naszej aplikacji. Mamy jeden poważny problem.
- zawartość pdf i nazwa pliku są pomieszane. na przykład
Nazwa pliku: 123456-Doc001-28042017-1415.pdf
Zawartość: 987654-Doc002-28042017-1312
Moim problemem jest zidentyfikowanie plików PDF, które uległy awarii (zawartość! = Nazwa pliku) i ponowne ich uruchomienie.
Nazwa pliku byłaby zgodna z zawartością pod względem obecności, ale treść ma strukturę litery, więc bezpośrednie porównanie nie zadziałałoby, a także różnią się dramatycznie długością w zależności od stopnia skomplikowania zawartości.
Tak więc moja lista życzeń to:
- Idealnie sprawdź każdy parametr z nazwy pliku. Wystarczy jednak sprawdzenie
UniqueID
. - Sposób albo przeniesienia nieudanych plików, zmiany ich nazwy lub zgłoszenia z powrotem nieudanych plików na liście.
- Uruchom jako zaplanowane zadanie lub stale z katalogu.
Daj mi znać, jeśli są jakieś konkretne informacje, których potrzebujesz, a ja powinienem móc Ci je dostarczyć.
źródło
123456-Doc001-28042017-1415.pdf
Zawiera co najmniej jedno dopasowanie w jednym wierszu pliku dla123456-Doc001-28042017-1415
??Odpowiedzi:
Za pomocą poniższego skryptu PowerShell przekonwertował pdf na tekst, który jest przechowywany w
temp.txt
pliku, który jest następnie używany do porównania z nazwą pliku. Nazwa pliku jest dzielona za pomocą separatora, a następnie określana, którego podziału należy użyć do porównania. Działa to dla każdego pliku w katalogu, w którym plik kończy się na .pdf. Zapewni to listęerror.log
niepasujących plików.Musieliśmy użyć zewnętrznego pliku .exe do konwersji pdf na tekst.
źródło