Porównywanie zawartości plików PDF

Porównywanie zawartości plików PDF
  Zapraszamy do lektury artykułu przygotowanego przez Łukasza Złockiego, trenera testerzy.pl, o porównywaniu zawartości plików PDF.

 

Wprowadzenie

Zapewne większość z nas w swojej pracy spotkała się z zadaniem, w którym należało porównać ze sobą co najmniej dwa pliki PDF. Najczęściej pliki te były wynikową jakiejś operacji w testowanej aplikacji np. faktura za zakup w sklepie internetowym w postaci dokumentu PDF. Człowiek jest tylko człowiekiem i w swej naturze często bywa omylny dlatego też przeglądając i porównując dwa niemal identyczne dokumenty może nie zwrócić uwagi na drobne szczegóły, które je różnią. Dodatkowo taka czynność dla człowieka jest długotrwała i męcząca, przez co cały proces testowy może się opóźnić.

Pragnąc zautomatyzować czynności, do których zalicza się również porównywanie dokumentów PDF, musimy wesprzeć się odpowiednią aplikacją. Z pomocą przychodzi nam produkt firmy i-net software mianowicie i-net PDF content comparer w skrócie i-net PDFC [1].

i-net PDFC to narzędzie do porównywania dwóch plików PDF (lub plików PDF, które są zawarte w dwóch różnych folderach) pod kątem różnic w ich zawartości. Jest to przydatne narzędzie dla porównania plików wygenerowanych z dwóch różnych programów generujących dokumenty PDF, np. OpenOffice Writer i Adobe PDF, czy też dokumentu wygenerowanego przez dwie rożne wersje jednego narzędzia lub też dokumentu wygenerowanego przez nową wersję lub funkcję testowanej aplikacji. i-net PDFC porównuje następujące elementy w dokumencie i wszelkie różnice zapisuje do logu:

• różnice w tekście (brakujące listery lub słowa)
• różnice w liniach, łukach (zaokrągleniach), elementach blokowych (brakujące linie, bloki lub z nadanym nowym stylem)
• różnice w obrazach (brakujące obrazki lub różnica w pikselach)
• różnice w marginesach (różne marginesy strony)

Każda z powyższych różnic jest konfigurowalna więc drobne różnice mogą być ignorowane jeśli istnieje taka konieczność.

 

Instalacja i korzystanie z i-net PDFC

Aby korzystać z i-net PDFC, należy pobrać i rozpakować plik zip „PDFC.zip” do wybranego folderu.

 

i-net PDFC może być używany na wiele sposobów. Można go wykonać w wierszu poleceń, np. za pomocą pliku wykonywalnego *.bat lub pliku *.sh. Jako alternatywę można wykorzystać jego API w napisanym własnym programie w języku Java, który może być wykonany jako samodzielna aplikacja. Aplikacja jest niezależna od platformy. Oznacza to, że można ją uruchomić na każdym systemie operacyjnym obsługującym Java w wersji 5 lub wyższej.

Najprostszym sposobem wykorzystania i-net PDFC jest uruchomienie go z linii poleceń. Pakiet i-net PDFC zawiera już plik wykonywalny dla Windows runPDFC.bat i plik runPDFC.sh dla systemu Unix/Linux. Taki plik wystarczy jedynie nieco zmodyfikować dla własnych danych i można uruchamiać porównywanie plików PDF w swoim środowisku.

Poniżej przedstawię podstawową składnię polecenia wraz z omówieniem parametrów:

RunPDFC [-c ] [-[i][o]] [ | ]

 

 

Uwaga: Jeśli używamy do porównania plików z dwóch różnych folderów, wówczas w obu folderach pliki muszą mieć takie same nazwy.

 

Przykłady użycia

Jeśli ściągnęliśmy i rozpakowaliśmy paczkę *.zip z programem do wybranego katalogu oraz mamy dwa foldery (folder1 i folder2) z plikami PDF o tych samych nazwach możemy rozpocząć porównywanie używając polecenia:

• runPDF.bat folder1 folder2

Rozpocznie się porównywanie plików PDF z folderu folder1 z plikami PDF o tej samej nazwie z folderu folder2. Wynik porównywanie zostanie wyświetlony na konsoli.

 

• runPDF.bat -i folder1 folder2

Poza wyświetleniem na ekran wyniku z porównania utworzony zostaje plik *.png w folderze folder1/differences, w którym uchwycone są wszystkie różnice w porównywany plikach kolorem czerwonym

 

 

• runPDF.bat -i -o folder1 folder2

Dla każdej strony w porównywanych plikach utworzony zostaje dodatkowy obraz *.png w podfolderze folder1/differences/ z oryginalną zawartością strony

 

• runPDF.bat -i -o folder1 folder2 > pdfc.log

Podobnie jak w poprzednim przykładzie z tą różnicą, że wynik nie jest wyświetlany na ekranie a zapisywany do pliku pdfc.log

 

Można również porównywać pojedyncze pliki

• runPDF.bat -i c:katalog_pdfplik1.pdf c:katalog_pdfplik2.pdf > pdfc.log

Dwa wskazane pliki są porównywane ze sobą , tworzony zostaje obraz zawierający ich różnice a wszelkie informacje pojawiające się w trakcie tej operacji są zapisywane do pliku pdfc.log

Jak widać na powyższych przykładach, wszelkie zmiany w porównywanych dokumentach oznaczane są czerwoną ramką. Dzięki temu łatwiej zlokalizować różnice i są one bardziej czytelne.

Aplikacja ponadto udostępnia swoje API, za pomocą którego możemy wywoływać jej polecenia w dowolnym programie przez nas rozwijanym. Po ściągnięciu paczki w katalogu documentation możemy znaleźć przykłady zastosowania niektórych z jego funkcjonalności.

Oczywiście aplikacja umożliwia nam jej konfigurowanie poprzez ustawianie odpowiednich parametrów w pliku config.xml (lub innym określanym przez parametr -c). Jednak z uwagi na ich dużą liczbę nie będę ich w tym artykule opisywał a osoby zainteresowane odsyłam na stronę producenta

http://www.inetsoftware.de/other-products/pdf-content-comparer/documentation#configuration

 

[1] - http://www.inetsoftware.de/other-products/pdf-content-comparer

 

To powinno Cię zainteresować