Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Struktura pliku konfiguracyjnego

Do poprawnego działania PlusBarcodeReader potrzebuje pliku konfiguracyjnego, który jest podawany przy wywołaniu programu. Plik ten jest w formacie INI. Kodowanie pliku konfiguracyjnego powinno być ustawione na UTF-8 bez BOM lub ANSI. Plik składa się z trzech części: ogólnych ustawień konfiguracji przetwarzania poszczególnych katalogów oraz konfiguracji logów.

Ustawienia ogólne

Sekcja TempDir

  • tempDirectory - Parametr wskazujący, gdzie przechowywać tymczasowe dane o przetwarzanych plikach przez pdfbox. Jeżeli nie podamy katalogu, wszystkie dane będą przechowywane w pamięci, co przy bardzo dużych plikach (>500 stron) może powodować wyczerpywanie się pamięci.Dla bezpieczeństwa należy zapewnić około 5GB wolnego miejsca w tym katalogu.

Sekcja ResizeFiles

Konfiguracja ResizeFiles odpowiada za zamianę rozmiaru pliku pdf. Niezbędne jest wcześniejsze ustalenie parametru tempDirectory.

  • OnSuccess - Parametr określa, czy zmiana rozmiaru pliku ma być wykonywana, gdy pomyślnie został odczytany kod i plik został umieszczony w odpowiednim katalogu.
  • OnError - Parametr określa, czy zmiana rozmiaru pliku ma być wykonywana, gdy nie został odczytany kod i następuje przekopiowanie pliku do katalogu z błędnymi plikami.

  • Scale - Parametr określa zmianę rozdzielczości w skali procentowej. Parametr ten jest obowiązkowy.

  • Compression - Parametr określa poziom kompresji podczas generowania nowego pdf'a. Im wyższa wartość, tym lepsza jakość, ale też większy rozmiar pliku. Wartości mogą być z zakresu 0.1 - 1.0. Dla innych wartości ustawiane będzie domyślnie 0.75. Parametr ten jest opcjonalny. Domyślna wartość to 0.75.

  • Method - Parametr określa metodę skalowania obrazu. Metody dające lepsze wyniki są wolniejsze. Możliwe wartości to: AUTO, SPEED, BALANCED, QUALITY, ULTRA. Domyślnie ustawiana jest wartość ULTRA.

Sekcja Directories_IDs

W sekcji tej definiowane są identyfikatory konfiguracji związane z przetwarzaniem wybranego katalogu. Podajemy tutaj nazwę identyfikatora wraz z wartością true lub false, która określa czy dana konfiguracja jest aktywna (przetwarzana w momencie uruchomienia programu), czy też nie np. 

...

Podane nazwy są w dalszej części pliku konfiguracyjnego wykorzystywane jako przedrostek do konfiguracji przetwarzania konkretnego katalogu. Dzięki temu istnieje możliwość zdefiniowania przetwarzania kilku katalogów w jednym pliku konfiguracyjnym, które będą uruchamiane kolejno przy pojedynczym uruchomieniu PlusBarcodeReader.

Ustawienia przetwarzania danego katalogu

Ta część umożliwia skonfigurowanie przetwarzania wybranego katalogu, którego identyfikator został zdefiniowany w sekcji Directories_IDs. W tej dokumentacji identyfikatory te będą oznaczane jako %ID%.

Sekcja %ID%

Sekcja definiująca jakie czynności mają być wykonane przy przetwarzaniu katalogu. Obecnie możliwe opcje do wyboru to: ProcessDirectory i RunAppAfterProcess. Możliwe wartości tych parametrów to: true lub false określają czy dana operacja ma być wykonana.

  • ProcessDirectory - określa czy wykonać przetwarzanie plików znajdujące się w powiązanym katalogu.
  • RunAppAfterProcess - określa czy po wykonaniu przetwarzania wywołać dodatkową metodę wybranego obiektu JAVY lub wybrane polecenie systemowe.

Sekcja %ID%_ProcessDirectory

Sekcja zawiera ogólne parametry dotyczące przetwarzania plików w wybranym katalogu.

  • SourceDirectory - określa katalog źródłowy, z którego pliki będą przetwarzane przez PlusBarcodeReader.
  • ReadSubDirectories - określa czy mają być przetwarzana podkatalogi wskazanego katalogu. Możliwe wartości to: true lub false.
  • OrgFileNamePattern - parametr zawierający wyrażenie regularne, do którego dopasowywane są nazwy plików (wraz z rozszerzeniem). Przetwarzane są tylko te pliki, które pasują do podanego wzorca.
  • OrgFileNameMask - parametr określający maskę do podanego wyrażenia regularnego, według której przekształcana jest oryginalna nazwa pliku. Istotny w przypadku sortowania plików po nazwie.
  • ImageType - określa format obrazów w plikach pdf. Możliwe wartości to: TYPE_BYTE_BINARY, TYPE_BYTE_GRAY, TYPE_3BYTE_BGR, TYPE_4BYTE_ABGR, TYPE_4BYTE_ABGR_PRE, TYPE_BYTE_INDEXED, TYPE_CUSTOM, TYPE_INT_ARGB, TYPE_INT_ARGB_PRE, TYPE_INT_BGR, TYPE_USHORT_555_RGB, TYPE_USHORT_565_RGB, TYPE_USHORT_GRAY (opis typów tutaj).
  • ImageDPI - określa rozdzielczość obrazów w plikach pdf. Wartość podawana w DPI.
  • ProcessFilesSeparetly - parametr przyjmuje wartości true lub false. Gdy wartość równa true, to każdy plik przetwarzany jest osobno. Gdy wartość równa false, wszystkie pliki w katalogu traktowane są jako jedna całość - pliki są sortowane zgodnie z parametrem OrderBy i według tej kolejności przetwarzane tak jakby stanowiły jeden plik.
  • OrderBy - określa sposób sortowania plików. Parametr istotny w przypadku gdy pliki traktowane są jako jedna całość (ProcessFilesSeparetly=false). Możliwe wartości: FileDate - sortowanie po dacie modyfikacji; FileName - sortowanie po nazwie pliku przetworzonej przez wyrażenie regularne. Domyślnie sortowanie jest po dacie.
  • ClassifiedAllPages - parametr określający czy każda strona musi być przydzielona do jakiejś klasy. Jeśli wartość równa true to w przypadku wystąpienia stron nie przydzielonych występuje wyjątek i przetwarzanie kończy się jako błędne. Jeśli wartość równa false to strony nieprzydzielone są ignorowane i przetwarzanie traktowane jako zakończone sukcesem.
  • EachPageInOnlyOneClass parametr określa czy dana strona może być przydzielona do więcej niż jednej klasy. Gdy wartość równa false dana strona może występować w wielu klasach. Jeśli wartość równa true to w przypadku gdy dana strona został już przydzielona do jednej klasy, a z definicji innej klasy wynika, że strona ma być również do niej przydzielona, to ta klasa jest usuwana (pozostaje tylko pierwsza klasa).
  • OnSuccess - określa co zrobić z oryginalnymi plikami w przypadku prawidłowego ich przetworzenia. Możliwe wartości to: None - plik pozostaje bez zmian; Copy - plik jest kopiowany; Move - plik jest przenoszony; Delete - plik jest usuwany.
  • SuccessDirectory - określa katalog docelowy dla oryginalnych plików w przypadku przetwarzania zakończonego powodzeniem.
  • OnError - określa co zrobić z oryginalnymi plikami w przypadku wystąpienia wyjątku przy przetwarzaniu. Możliwe wartości to: None - plik pozostaje bez zmian; Copy - plik jest kopiowany; Move - plik jest przenoszony; Delete - plik jest usuwany.
  • ErrorDirectory - określa katalog docelowy dla oryginalnych plików w przypadku przetwarzania zakończonego błędem.

Sekcja %ID%_Barcodes

Sekcja definiuje identyfikatory kodów kreskowych, które będą wyszukiwane w plikach. Mogą one przybierać wartość true (przy przetwarzaniu następuje próba wyszukania kodu zdefiniowanego pod tym identyfikatorem) lub false (przy przetwarzaniu wyszukiwanie tego kodu jest pomijane) np.

...

W dalszej części dokumentacji identyfikatory te będą oznaczane jako %Barcode_1%, %Barcode_2% itp..

Sekcja %ID%_%Barcode_1%

Sekcja definiuje kod kreskowy, którego identyfikator został podany w sekcji %ID%_Barcodes.

  • BarcodeTypes - określa typ kodu kreskowego. Możliwe wartości to: 
    • AZTEC
    • CODABAR
    • CODE_128
    • CODE_39
    • CODE_93
    • DATA_MATRIX
    • EAN_13
    • EAN_8
    • ITF 
    • MAXICODE
    • PDF_417 
    • QR_CODE
    • RSS_14
    • RSS_EXPANDED
    • UPC_A
    • UPC_E
    • UPC_EAN_EXTENSION
  • BarcodePattern - określa wyrażenie regularne, do którego będzie dopasowywana wartość kodu kreskowego. Jeśli rozpoznany kod kreskowy nie pasuje do podanego wzorca jest on ignorowany.
  • SkipNextIdenticalBarcode - parametr określa czy kod kreskowy będzie ignorowany (wartość parametru true) w przypadku, gdy poprzedni rozpoznany kod kreskowy ma taką samą wartość. Jeśli wartość równa false, to wartości kolejnych kodów mogą się powtarzać.

Sekcja %ID%_Classes

 Sekcja zawiera identyfikatory klas dokumentów do jakich mają być przydzielony wybrane strony z przetwarzanych plików. Możliwe wartości przy identyfikatorach to true i false określające czy dana klasa ma być uwzględniana przy przetwarzaniu. W dalszej części dokumentacji identyfikatory te będą oznaczane jako %Class%.

Sekcja %ID%_%Class%

W sekcji tej określa się parametry definiujące klasę dokumentu.

...

  • SplitEachPage - jeśli wartość parametru jest równa false, to klasa zapisywana jest do jednego pliku. Jeśli wartość wynosi true, każda strona zapisywana jest w osobnym pliku. W tym wypadku wymagany parametr $Num$ w nazwie pliku, inaczej pliki będa nadpisywane.
  • Indicies - określa liczbę indeksów, które będą zdefiniowane dla tej klasy. Za indeks przyjmuje się wartość kodu kreskowego, która może być przetworzona przez wyrażenie regularne i zapisana w nazwie pliku dla tej klasy. Kolejne parametry określające konfigurację poszczególnych indeksów muszą zaczynać się od "IndexN", gdzie N określa kolejny numer indeksu i jest mniejsze lub równe wartości parametru Indicies.
  • IndexN - parametr jako wartości przyjmuje identyfikatory kodów kreskowych zdefiniowane w sekcji %ID%_Barcodes. Określa on która wartość kodu kreskowego ma być przypisana do indeksu. W przypadku gdy danego kodu kreskowego nie uda się zidentyfikować w tej klasie ustawiana jest wartość NULL.
  • IndexNRange - parametr określa zakres, w obrębie którego wyszukiwane są kody danego typu. Możliwe wartości: Class - wyszukiwanie kodu w obrębie stron przypisanych do danej klasy; Batch - wyszukiwanie kodu w obrębie zestawu dokumentów zdefiniowanego w sekcji %ID%_Batch
  • IndexNMultipleValue - gdy parametr równy true wszystkie wartości kodów są przypisywane do indeksu. Wartości rozdzielane są po średniku. Gdy parametr jest równy false do indeksu przypisywane jest pierwsza znaleziona wartość kodu kreskowego.
  • IndexNRegExp - wyrażenie regularne dopasowywane do wartości indeksu. W przypadku gdy wartość nie jest dopasowana do wyrażenia, indeks przyjmuje wartość "" (znak pusty). Dla parametru IndexNMultipleValue=true, dopasowywanie odbywa się do każdej wartości rozdzielonej średnikiem osobno.
  • IndexNRegMask - określa maskę w celu przekształcenia wartości indeksu dopasowanego do wyrażenia regularnego IndexNRegExp.
  • DestinationDirectory - ścieżka do katalogu, do którego będą zapisywane plik dopasowane do danej klasy dokumentów.
  • FileName - nazwa plik jaka będzie nadawana dokumentom z tej klasy. W nazwie tej można zaszyć wartości indeksów poprzez dodanie wyrażenia $IndexN$, gdzie N jest numerem indeksu. Dodatkowo można dodać parametr $OrgFileName$, który podstawia do nazwy oryginalną nazwę pliku, w którym występuje klasa. W przypadku gdy przetwarzana jest paczka plików (ProcessFilesSeparetly=false) nazwa brana jest z pierwszego pliku. Istnieje równie możliwość dodania licznika plików w przypadku plików z tą samą nazwą. Odbywa się to przez dodanie wyrażenia $Num$. Na początku przypisywana jest wartość 1 i w przypadku gdy plik z taką nazwą już istnieje licznik jest zwiększany o jeden, aż do znalezienia nazwy, która nie występuje w katalogu. Brak tego wyrażenia może powodować, że pliki z tą samą nazwą będą nadpisywane.
  • FileNameRegExp oraz FileNameRegMask - parametry opcjonalne, dzięki którym można dodatkowo przekształcić nazwę pliku według podanego wyrażenia regularnego (FileNameRegExp) oraz maski (FileNameRegMask).

Sekcja %ID%_Batch

W sekcji tej definiowany jest zakres występowania zestawu dokumentów, który może być wykorzystany do przypisania indeksów do klas, które nie zawierają w sobie danego kodu kreskowego (np. do zaindeksowania załącznika do faktury kodem występującym na powiązanej fakturze).

  • Start - parametr określający początek występowania zestawu dokumentów. Zdefiniowany na podobnej zasadzie jak parametr start z %ID%_%CLASS%.
  • Stop - parametr określający koniec występowania zestawu dokumentów. Zdefiniowany na podobnej zasadzie jak parametr stop z %ID%_%CLASS%.

Sekcja %ID%_RunAppAfterProcess

W sekcji tej definiowane są akcje, które mają być wykonane po przetworzeniu katalogu.

  • Type - określa typ akcji. Możliwe wartości: Java - wywołanie metody z obiektu Javy; Shell - wywołanie polecenia systemowego.
  • Class - parametr istotny w przypadku gdy Type=Java, zawierający nazwę klasy obiektu, której metoda ma być wywołana.
  • Method - nazwa metody do wywołania w przypadku Type=Java. Metoda ta może przyjmować tylko jeden parametr, który jest typu String.
  • Param - wartość parametru przekazywana do metody określonej w parametrze Method.
  • Command - polecenie systemowe, które będzie wywołane w przypadku gdy Type=Shell.

Konfiguracja logów

Plik konfiguracyjny jest przy starcie programu wykorzystywany przy konfiguracji logów log4j. Konfiguracja taka powinna być umieszczona w sekcji [Logger] i powinna być zgodna ze standardem konfiguracji log4j. Przykładowa konfiguracja:

...