Wysoka jakość archiwizowanych dokumentów papierowych, wierne oddanie kolorystyki i wyglądu dokumentu papierowego, błyskawiczne wyświetlenie wskazanej strony publikacji, to jedynie niektóre spośród cech elektronicznych dokumentów w formacie DjVu. Dla archiwizowanych dokumentów tekstowych bardzo istotną możliwością jest przeszukiwanie pełnokontekstowe. Dokumenty DjVu mogą posiadać - poza warstwami treści lub tła - niewidoczne (czy też nie wyświetlane) warstwy usługowe. Jedną z takich warstw jest ukryta warstwa tekstowa (hidden text layer OCR).

O tym, czy w danym dokumencie dostępne będzie przeszukiwanie pełnokontekstowe, decyduje osoba przygotowująca plik DjVu. Najczęściej warstwa tekstowa dodawana jest do pliku podczas jego tworzenia (za pomocą wirtualnej drukarki, DocumentEditora lub Workflow Managera). Użytkownicy pakietu DocumentExpress Enterprise mogą użyć każdej spośród wymienionych wyżej aplikacji, zaś użytkownicy DocumentExpress Professional, tylko dwóch pierwszych. Warstwa tekstowa może być również dodana do pliku DjVu później. Jedynym wyjątkiem kiedy do pliku DjVu nie można dodać, uaktualnić lub usunąć warstwy tekstowej są pliki SecureDjVu, a zatem pliki chronione hasłem.

Jeżeli publikacja w formacie DjVu zawiera warstwę tekstową, możemy w wygodny sposób przeszukiwać ją za pośrednictwem przeglądarki DjVu Browser/DjVu Viewer lub za pomocą - również darmowej - przeglądarki WinDjView.

Wymienione wyżej przeglądarki umożliwiają przeszukiwanie wyłącznie otwartego i wyświetlonego dokumentu. Jednak, nic nie stoi na przeszkodzie, by w prosty sposób przeszukiwać wg określonego zwrotu cały dysk twardy, zasoby sieci lokalnej lub kolejno wkładanych płyt CD-R/DVD±R. Wystarczy zainstalować nieodpłatne narzędzie iFilter (użytkownicy systemów Windows). Po jego instalacji, narzędzie zintegruje się z Windows Eksploratorem i przeszukiwanie wskazanych lokalizacji będzie identyczne jak przeszukiwanie dokumentów Worda lub arkuszy Excela. Wystarczy wywołać okienko wyszukiwania klawiszem F3, lub po podświetleniu nazwy folderu albo napędu, prawym klawiszem myszki z wyświetlonego menu wybrać opcję „Wyszukaj…”.

Zanim jednak w pliku DjVu można będzie odnaleźć określony zwrot, należy „wyposażyć” go w warstwę tekstową. Ponieważ – wbrew pozorom – warstwa taka może powstać na wiele sposobów, poniżej omówiono kolejne techniki tworzenia warstw tekstowych dokumentów DjVu wraz z przykładami (nie wyłączając dokumentów pisma odręcznego).

Życzenia użytkowników publikacji elektronicznych stale rosną. Oczekiwanymi opcjami coraz częściej są :

i sądzić można, że to jedynie tylko niektóre funkcje, jakie na dziś powinien posiadać dokument elektroniczny.

Wykonanie operacji optycznego rozpoznania znaków i zapisanie wyników jej pracy w pliku DjVu.

Operację tą można zrealizować za pośrednictwem DocumentEditora jak i Workflow Managera. W obu przypadkach, przed rozpoczęciem rozpoznania tekstu można wskazać jeden spośród ponad 100 języków, które udostępniają te aplikacje. Jeżeli rozpoznanie prowadzone jest dla kilkuset lub kilku tysięcy plików (stron publikacji) jednocześnie, oczywiście wygodniejszym narzędziem jest Workflow Manager. Jeżeli jednak operację należy wykonać tylko dla niektórych stron publikacji lub kilku pojedynczych publikacji, można użyć DocumentEditor. Należy pamiętać o tym, że w plikach DjVu, każda strona publikacji jest tworem autonomicznym, co oznacza m.in., że fakt dołączenia warstwy tekstowej do jednej ze stron publikacji nie posiada żadnego znaczenia dla odmiennej funkcjonalności publikacji lub np. konieczności dodania warstw tekstowych dla stron pozostałych. Powyższe uwagi dotyczą również usunięcia lub aktualizacji – czyli ponownego rozpoznania usuniętej - warstwy tekstowej z wybranych lub wszystkich stron publikacji. Klasyczny OCR w plikach DjVu realizowany jest za pośrednictwem „silnika OCR” zakupionego przez LizardTech od firmy Read Iris. Aplikacja DocumentEditor tworzy warstwy tekstowe plików DjVu wyłącznie w oparciu o klasyczny OCR. Dla Workflow Managera jest to jedna z kilku możliwości. Wydajność takiej operacji ściśle zależy od jakości pliku DjVu, w którym prowadzimy rozpoznanie optyczne. Dokładniej rzecz ujmując, ściśle zależy od jakości warstwy treści tego pliku, a w ogóle nie jest zależna od zawartości i jakości jego warstwy tła. Jeżeli zatem, pliki DjVu, które zamierzamy poddać rozpoznaniu OCR zostały posegmentowane podczas konwersji niewłaściwie (poszczególne litery, sylaby lub całe wyrazy znajdują się w warstwie tła), jakość otrzymanej warstwy tekstowej OCR może nie być zadowalająca. Dla takich przypadków nieocenionym będzie kolejny element pakietu EnterpriseConfiguration Manager. Jeżeli posiadane profile konwersji plików do formatu DjVu nie dają satysfakcjonującej dla przykładu segmentacji zawartości stron, można stworzyć nowy profil konwersji lub „doprecyzować” ten, który podczas konwersji tworzył pliki DjVu z najmniejszą liczbą uchybień. Takim sposobem przygotowano plik rękopisu Listu Władysława Raczkiewicza, a zaprezentowany w dalszej części artykułu.

Klasyczne rozpoznanie tekstu realizuje się albo dla gotowych już plików DjVu bez warstwy tekstowej albo podczas konwersji plików graficznych zapisanych w formatach jpg, tiff, pnm, pnb lub bmp. Klasyczne rozpoznanie znaków za pośrednictwem oprogramowania DocumentExpress prowadzi się dla plików BitonalDjVu (posiadają tylko warstwę treści), plików z segmentacją zawartości na warstwy, a nie prowadzi się dla plików PhotoDjVu (ponieważ zawierają jedynie warstwę tła). Ostatni przypadek - pliki PhotoDjVu  - tak naprawdę można uzupełnić o warstwę tekstową stosując techniki niestandardowe, więc omówiono to w dalszej części artykułu.

Dodawanie warstw tekstowych OCR do plików DjVu jest bardzo proste. Należy jedynie wybrać pożądany język, uaktywnić opcję OCR, a po jej zakończeniu należy zapisać plik na dysku. Przykładem warstwy tekstowej utworzonej za pośrednictwem DocumentEditora może być publikacja „Wiadomości chemiczne”, która zamieszczona jest także w sekcji „Zastosowania” serwisu www.djvu.com.pl.

Pozyskiwanie warstwy tekstowej (wraz z innymi danymi opisowymi) podczas konwersji plików pdf za pomocą DocumentExpress Enterprise.

Pliki pdf, bardzo często służą jako kontener przechowujący informacje pochodzące z przeróżnych formatów plików. Pliki pdf, w których zawartość opisana jest wektorowo (powstałe dla przykładu za pomocą Illustratora lub PhotoShopa), za pośrednictwem DocumentExpress Enterprise podlegają wyjątkowo wydajnej konwersji z dodaniem warstwy tekstowej. Wystarczy pojedynczym kliknięciem uaktywnić dodawanie do konwertowanych stron publikacji warstwy tekstowej, by w pliku DjVu powstała warstwa tekstowa w 100% odpowiadająca poprawnością warstwie konwertowanego pliku. W takich plikach DjVu, Enterprise utworzy warstwę tekstową, w której poszczególne wyrazy w pliku źródłowym (konwertowanym) mogą być zapisane dowolną czcionką, posiadać dowolne pochylenie względem poziomu, być oparte o dowolną krzywą, niektóre litery mogą być nadpisane elementami graficznymi lub wręcz nakładać się na fragmenty innych wyrazów itp. Jest to zatem warstwa tekstowa, która powstaje całkowicie odmiennie od sposobu utworzenia warstwy OCR rozumianej potocznie, a otrzymywanej na drodze omówionej w punkcie poprzednim. Praktycznie takiemu tworzeniu warstwy tekstowej bardziej odpowiada termin „pozyskanie warstwy tekstowej” niż „rozpoznanie tekstu strony”. Od strony funkcjonalności czy też użyteczności, warstwy powstałe obu sposobami są identyczne, choć w omawianym przypadku dziwić czasami może podświetlenie odszukanego zwrotu, jak zaprezentowano to na powiększanych miniaturkach obok.

Tego typu pliki – bogate w ilość elementów graficznych - to najczęściej mapy, przewodniki turystyczne lub różnego rodzaju schematy. Przykładem mogą służyć 3 poniższe mapy, które zaczerpnięto z galerii map świata (galeria ta zawiera kilkaset map z warstwą tekstową osadzoną sposobem omawianym w tym punkcie) :

   Bangladesh.djvu     Czech.djvu     Polska_200401.djvu

Poszukując w pliku DjVu określonego zwrotu można z menu „Nawigacja” wybrać opcję „Znajdź...” lub opcję tą wskazać na pasku narzędziowym (przycisk lornetki),

lub też z menu „Zaznaczenie” wybrać opcję „Zaznacz cały tekst

Wypada dodać, że podczas konwersji plików pdf zawierających hierarchiczne spisy treści (zakładki), wewnętrzne lub zewnętrzne hiperłącza, dane te przenoszone są do tworzonego pliku DjVu automatycznie, a warstwa tekstowa przenoszona jest wyłącznie na życzenie użytkownika. Takim sposobem powstała publikacja „Język C++ programowanie obiektowe”. Zawarte w niej zakładki jak i warstwa tekstowa, została przeniesiona (a nie oddzielnie rozpoznana) z konwertowanego pliku źródłowego w formacie pdf.

Manipulacje i edycja warstw tekstowych w plikach DjVu.

Automatyczne tworzenie warstw tekstowych w plikach DjVu drogą rozpoznania OCR bądź przeniesienia tekstu z plików zapisanych wektorowo, jest wygodną, szybką i nie absorbującą użytkownika operacją. Jednak jak każda operacja automatyczna może w określonych przypadkach wymagać dodatkowych czynności specjalnych. DocumentExpress Enterprise umożliwia automatyczne (podczas konwersji) tworzenie prostych plików tekstowych z zawartością warstw tekstowych kolejnych stron konwertowanej publikacji i/lub plików xml zawierających poza m.in. różnego typu adnotacjami stron, również warstwę tekstową, ale wraz z koordynatami każdego wyrazu na stronie publikacji, z której ten wyraz pochodzi.

Najczęściej takimi „czynnościami specjalnymi” są

...

Popularność technologii DjVu w ostatnich latach zaczyna wzrastać w coraz większym tempie.

Trudno się zatem dziwić intensywności prac nad rozwojem narzędzi do jej użytkowania. Producent,

amerykańska firma LizardTech w niespełna rok po premierze piątej wersji przeglądarki DjVu Browser

Plug-in oddaje do użytku kolejną, szóstą już wersję.

...

<HIDDENTEXT>

<PAGECOLUMN>

<REGION>

<PARAGRAPH>

<LINE>

<WORD coords="287,572,495,523">Zdarza</WORD>

<WORD coords="530,584,632,525">siÄ™,</WORD>

<WORD coords="667,572,731,525">ĹĽe</WORD>

<WORD coords="764,584,874,523">gdy</WORD>

<WORD coords="910,584,1016,523">plik</WORD>

<WORD coords="1046,572,1301,525">zostanie</WORD>

<WORD coords="1333,584,1673,527">otworzony,</WORD>

<WORD coords="1710,584,2059,523">uĹĽytkownik</WORD>

<WORD coords="2089,584,2475,523">dostosowuje</WORD>

<WORD coords="2510,584,2706,536">pewne</WORD>

<WORD coords="2741,584,3060,527">parametry</WORD>

<WORD coords="3094,584,3411,523">przeglÄ…du.</WORD>

</LINE>

<LINE>

<WORD coords="147,659,349,599">Często</WORD>

<WORD coords="388,647,624,600">zmienia</WORD>

<WORD coords="669,659,1076,598">powiększenie</WORD>

<WORD coords="1115,659,1512,594">wyświetlanej</WORD>

<WORD coords="1553,659,1766,602">strony,</WORD>

<WORD coords="1807,659,2106,594">wyświetla</WORD>

<WORD coords="2150,659,2310,598">panel</WORD>

<WORD coords="2355,657,2632,600">miniatur,</WORD>

<WORD coords="2676,647,2766,598">itd.</WORD>

<WORD coords="2812,659,2931,598">Gdy</WORD>

<WORD coords="2972,659,3078,598">plik</WORD>

<WORD coords="3115,659,3419,600">otwierany</WORD>

</LINE>

...

</PARAGRAPH>

</REGION>

</PAGECOLUMN>

</HIDDENTEXT>

Zintegrowanie poprawionego pliku xml nie nastręcza żadnego kłopotu. W operacji tej wskazuje się tylko plik xml. W jego nagłówku znajduje się informacja o lokalizacji i nazwie pliku DjVu, do którego plik xml zostanie „zapisany”:

<HEAD>file://localhost/C:/Fox/DjVu/djvu_browser.djvu</HEAD>

Warstwa tekstowa w publikacjach rękopisów

Na temat programów czy też prób i prac nad rozpoznawaniem pisma odręcznego napisano już wiele artykułów. DocumentExpress oczywiście nie posiada możliwości analizy zeskanowanego pliku pisma odręcznego, a co za tym idzie nie może utworzyć dla takiego pliku warstwy tekstowej (z nieznaczącą ilością błędów). To, że DocumentExpress nie posiada takiej możliwości wprost, nie oznacza jeszcze, że czynność taka nie jest możliwa.

Poniżej opisano sposób w jaki można utworzyć warstwę tekstową dla digitalizowanych rękopisów. Sposób ten, podobnie jak edycja warstwy OCR opisanej w punkcie poprzednim, wymaga znacznego nakładu pracy, więc dedykowany może być prawdopodobnie tylko dla zbiorów specjalnych o dużej wartości muzealnej.

Aby dla elektronicznej postaci zeskanowanego rękopisu utworzyć warstwę tekstową, wystarczą podstawowe informacje o formacie DjVu oraz o możliwościach aplikacji DocumentEditor i Workflow Manager.

Plik DjVu z segmentacją zawartości na warstwy można za pośrednictwem np. DocumentEditor poddać operacji optycznego rozpoznania OCR. Utworzona tym sposobem warstwa tekstowa będzie zawierać oczywiście zupełnie przypadkowe litery w zupełnie przypadkowych miejscach strony. Nas interesuje w tym momencie tylko to, że taka warstwa będzie,

DocumentEditor umożliwia na dowolnej stronie publikacji DjVu, dodanie dowolnej ilości adnotacji, czasami żargonowo określanych mianem „żółtych karteczek”. Dla każdego słowa lub wiersza strony publikacji należy takie adnotacje dodać (tzn. starannie otoczyć każde słowo prostokątnym obszarem adnotacji). Adnotacje deklaruje się jako całkowicie przeźroczyste, a jako ich komentarze wpisuje się słowo, na obszarze którego zostały dodane. Czytelnik publikacji po naprowadzeniu kursora myszki w obszar adnotacji zobaczy wyświetlony komentarz.

Komentarzem każdego wyrazu w danym wierszu nie musi być ten wyraz, ale dla przykładu treść całego wiersza. Wybór oczywiście zależy od osoby przygotowującej publikację. Różną zawartość wyświetlanego komentarza adnotacji, w zależności od pozycji myszki na obszarze strony rękopisu zaprezentowano poniżej :

Jeżeli dysponujemy elektronicznym plikiem zawierającym treść lub transkrypcję rękopisu, nakład pracy będzie mniejszy, ponieważ komentarze kolejnych adnotacji będzie można utworzyć na zasadzie Ctrl-C/Ctrl-V (kopiuj/wklej) a nie jako zwykłe wpisywanie wyrazów.

Pozornie, dodawanie adnotacji kojarzyć się może ze zbytecznym okraszaniem publikacji. Jednak należy mieć na uwadze fakt, ze podczas dodawania i zapisywania adnotacji w pliku DjVu, zapisane zostaną m.in. koordynaty kolejnych adnotacji otaczających poszczególne słowa lub wiersze rękopisu, a te informacje są dla powstania warstwy tekstowej niemal bezcenne.

Gdy do pliku DjVu z utworzoną – lecz nic nie wartą – warstwą tekstową dodane zostaną wszystkie adnotacje strony, plik jest zapisywany a praca w DocumentEditor jest przerywana. Można dodać, że adnotacje do strony pliku DjVu zapamiętywane są w takiej kolejności w jakiej dodał je użytkownik. Aby zatem uprościć sobie dalszą pracę, adnotacje należy dodawać kolejno od pierwszego do ostatniego słowa na stronie

Za pomocą Workflow Managera ekstrahujemy z pliku DjVu tekstowy plik metadanych xml. Jego edycja polega na tym, że usuwana jest nic nie warta warstwa tekstowa, a w jej miejsce wpisuje się kolejne wiersze warstwy tekstowej bazujące na utworzonych uprzednio adnotacjach (obecnych również w pliku xml). Przykładową warstwę tekstową przedstawiono wyżej.

Pojedyncze słowo warstwy tekstowej zapisane jest w postaci :

<WORD coords="1040,1105,1462,1303">Ignacy</WORD>

Z kolei adnotacja, na bazie której powstanie powyższy wiersz, w pliku xml ma postać

<AREA coords="1040,1105,1462,1303" shape="rect" alt="Ignacy" nohref="nohref" target="_self" bordertype="none" />

Po wprowadzeniu całej warstwy tekstowej do pliku xml, plik zapisujemy i ponownie integrujemy z plikiem DjVu, Z pliku xml, adnotacje - przed zintegrowaniem z plikiem DjVu - mogą zostać usunięte lub pozostawione jako dodatkowy „ozdobnik” dalece nietypowej publikacji elektronicznej.

Efekt pracy można sprawdzić w przeglądarce, przykładowo za pośrednictwem opcji „Zaznacz cały tekst

Często spotykanym sposobem prezentowania treści publikacji rękopisów jest jednoczesne wyświetlenie graficznego obrazu zdigitalizowanej strony i przepisanego tekstu. Poniższe prezentacje przygotowano takim właśnie sposobem, z tą różnicą, że „graficznym obrazem” jest plik DjVu posiadający kompletną i zintegrowaną warstwę tekstową.

List Władyslawa Raczkiewicza do Ignacego Paderewskiego o powstaniu rządu emigracyjnego (z 30.09.1939 r.)

List Thomasa Jeffersona do Angelici Schuyler   przykład zaczerpnięto z serwisu   http://www.djvu.org.

Jakkolwiek sposób wyświetlenia transkrypcji digitalizowanego rękopisu jest niezbędny w sytuacji, gdy „graficzny obraz” jest plikiem w formacie jpg lub tiff, to w sytuacji kiedy dysponujemy publikacją rękopisu w formacie DjVu, do której wprowadzono warstwę tekstową, opis taki może okazać się zbytecznym.

Zbytecznym, ponieważ podczas zapoznawania się z publikacją,

Poniższe hiperłącza wyświetlają obie publikacje rękopisów wyłącznie w oknie przeglądarki. Dodano ponadto dwa hiperłącza do zredagowanych plików xml, które posłużyły do powstania publikacji „List Władyslawa Raczkiewicza do Ignacego Paderewskiego”.

Nazwa publikacji

Wyświetlanie słowa

Wyświetlanie wiersza

List Władyslawa Raczkiewicza do Ignacego Paderewskiego

List Thomasa Jeffersona do Angelici Schuyler

Zatem poza optycznym rozpoznaniem tekstu OCR, pozyskaniem warstwy tekstowej podczas konwersji niektórych plików z zapisem wektorowym, warstwy tekstowe w plikach DjVu można również utworzyć za pomocą prostego edytora tekstu, po czym zintegrować z plikiem DjVu „na stałe”. Gdyby jednak wystąpiła kolejna przeszkoda polegająca na tym, że cenny rękopis jest w znacznym stopniu zniszczony i jedynym sensownym rozwiązaniem jest jego konwersja w trybie Photo pomocnym będą informacje z kolejnego punktu.

Pliki PhotoDjVu z warstwą tekstową

Konwersja plików do formatu DjVu według profilu Photo dotyczy przede wszystkim kolorowych zdjęć lub zbiorów malarstwa. Jednak profil ten wykorzystać można dla każdego innego typu „informacji” w sytuacji kiedy archiwizacji podlegają dokumenty niskiej jakości. Zgodnie z zasadą „garbage in – garbage out” (w wolnym tłumaczeniu: z śmieci, otrzymać można tylko śmieci) konwersja z segmentacją np. dokumentu tekstowego z plików jpg o wysokim stopniu kompresji (niska jakość) nie może prowadzić do pliku w jakimkolwiek formacie o wysokiej jakości. Jeżeli jednak takie pliki lub znacząco zniszczony dokument papierowy jest jedynym źródłem, z którego może powstać archiwalny zasób, w przypadku technologii DjVu, konwersję należy przeprowadzić z użyciem profilu Photo. Powstały plik będzie większy rozmiarem od przeciętnego pliku DjVu z podobną zawartością, jednak straty jakości względem źródła, z którego został otrzymany, nie będą widoczne. No i pozornie problem został rozwiązany. Jednak pliki PhotoDjVu, w których występuje wyłącznie warstwa tła, nie mogą posiadać warstwy tekstowej, ponieważ rozpoznawanie tekstu realizowane jest wyłącznie w obrębie warstwy treści.

Aby obejść tą „przeszkodę”, tzn. przygotować plik DjVu z możliwie znikomą stratą jakości (PhotoDjVu) i oczywiście z zawartą w nim warstwą tekstową, należy konwersję - źródłowych plików poszczególnych stron - do formatu DjVu przeprowadzić dwukrotnie.

Najpierw pliki poddawane są konwersji według profilu „segmentującego” zawartość strony (np. Manuscript lub Drawn) z rozdzielczością odpowiadającą rozdzielczości plików źródłowych i zaznaczeniem wykonania rozpoznania tekstu OCR,

Z powstałych plików ekstrahowane są pliki xml (Workflow Manager), w których warstwa tekstowa na pewno zawiera wiele błędów (konwertowane były pliki o niskiej jakości, o częściowo zabrudzonych lub naddartych stronach, ...),

W otrzymanych plikach xml wykonywana jest edycja przekłamań rozpoznanego tekstu (sposobem opisanym w poprzednim punkcie), a po jej zakończeniu uaktualnione pliki zapisywane są na dysku,

W tym momencie utworzone pliki DjVu można już skasować i rozpocząć ponowną konwersję plików źródłowych dla tej samej wartości rozdzielczości, tych samych nazw i do tego samego folderu, ale według profilu Photo.

Do powstałych plików PhotoDjVu „eksportuje” się poprawione pliki xml (Workflow Manager), co kończy operację dodawania warstwy tekstowej do plików PhotoDjVu.

Jako przykład wykorzystano 2 pliki jpg o rozdzielczości 100 dpi, a pobrane ze strony : http://dziedzictwo.polska.pl.

Jest to króciutka publikacja : „Dodatek nadzwyczajny dziennika ‘Godzina Polski’ z okazji proklamowania Królestwa Polskiego z 5 XI 1916 roku”.

Pobrane pliki jpg skonwertowano do formatu DjVu z segmentacją za pomocą :

Po utworzeniu tekstowych plików xml, nie usunięto zbytecznych już plików DjVu, aby móc je zaprezentować poniżej. Następnie oba pliki jpg skonwertowano ponownie według profilu Photo z rozdzielczością 100 dpi. Dodatkowo, ponieważ segmentacja otrzymanych za pomocą profilu Manuscript plików DjVu może nie zadowalać, za pośrednictwem Configuration Manager przygotowano indywidualny profil konwersji, który nie tylko efektywniej prowadzi segmentację zawartości na warstwy, ale dodatkowo przed podjęciem konwersji - za pomocą algorytmu Upsize – zmienia plik jpg 100 dpi do odpowiednika o rozdzielczości 200 dpi (w tym konkretnym profilu). Różnice w wielkościach plików, efektywności segmentacji a przede wszystkim warstwy tekstowe w publikacji PhotoDjVu, zaprezentowano poniżej. Poprawioną warstwę tekstową umieszczono zarówno w plikach PhotoDjVu jak i obu konwersjach za pomocą profilu Manuscript. Oryginalną, bez korekty, warstwę OCR pozostawiono jedynie w pliku, w którym rozdzielczość podniesiono do 200 dpi.

Opis pliku

Widok kompletny

Warstwa treści

Warstwa tła


Enterprise

nie dotyczy

profil Photo z OCR

Treść: brak

Tło: 100 dpi

rozmiar 402 kB

Enterprise

profil Manuscript

Treść: 300 dpi

Tło: 100 dpi

rozmiar 382 kB

Professional

profil Manuscript

Treść: 300 dpi

Tło: 100 dpi

rozmiar 387 kB

Enterprise

Profil indywidualny

Treść: 200 dpi

Tło: 100 dpi

rozmiar 450 kB

Łatwo zauważyć, że w przedstawionym przykładzie przyrost objętości pliku PhotoDjVu, względem plików, które utworzono za pośrednictwem profilu Manuscript są „symboliczne” (rzędu 20÷25 kB / 2 strony). Nie jest to regułą, podobnie jak nie należy oczekiwać, że poddając konwersji - zamiast plik 100*100 dpi  - plik, który przed konwersją odpowiedni algorytm zamienia na plik 200*200 dpi, otrzymamy publikację o rozmiarze 4-krotnie większym (w powyższym przykładzie wzrost rozmiaru wynosi zaledwie 17%).

Tworzenie plików PhotoDjVu, w których umieszczono warstwę tekstową OCR jest znacznie prostsze (wręcz zalecane jest, by dodatkowo zautomatyzować tą czynność za pomocą skryptów) niż opracowywanie indywidualnych profili konwersji za pomocą Configuration Manager. Zatem metodę tą można polecić początkującym użytkownikom pakietu DocumentExpress.

Podczas „eksportu” poprawionego pliku tekstowego xml do pliku PhotoDjVu istnieje (w niektórych przypadkach) możliwość popełnienia drobnej pomyłki. Konwersje plików jpg (zwyczajowo 300 dpi) prowadzą do pliku : albo Photo z warstwą tła 300 dpi, albo do pliku z segmentacją, gdzie warstwa treści posiada rozdzielczość 300 dpi a warstwa tła 100 dpi. Natomiast w przypadku, gdy konwertuje się plik jpg o rozdzielczościach niższych (jak w omawianym przykładzie – 100 dpi), otrzymamy : albo pliku PhotoDjVu z warstwą tła 100 dpi, albo plik z segmentacją gdzie rozdzielczość warstwy treści enkoder DjVu „podniesie” do 300 dpi a warstwa tła będzie wykonana dla 100 dpi. Skoro plik xml do poprawy warstwy tekstowej zawierającej przekłamania ekstrahuje się z pliku posegmentowanego, należy oczekiwać, że w pliku xml umieszczona zostanie informacja o rozdzielczości 300 dpi. Gdy wartości takiej nie zmieni się na 100 dpi (poniżej w ramce zaznaczono na brązowo) i wyeksportuje do pliku PhotoDjVu, który przed „eksportem” zgłaszał się jako plik z rozdzielczością 100 dpi, to otrzymamy plik PhotoDjVu z warstwą OCR i rozdzielczością... 300 dpi. Oczywiście, że nie wzrosła jakość pliku, tylko zmniejszyła się jego powierzchnia 3*3 = 9 razy. Dlatego należy pamiętać, że w wierszu PARAM name="DPI" value="100" powinna być taka wartość rozdzielczości, przy której prowadzono konwersję.

<?xml version="1.0" ?>

<!DOCTYPE DjVuXML>

<DjVuXML>

<HEAD>file://localhost/C:/DjVu/OCR/PhotoDjVu/godzina_Polski_1_Ent.djvu</HEAD>

<BODY>

<OBJECT data="file://localhost/C:/DjVu/OCR/PhotoDjVu/godzina_Polski_1_Ent.djvu" type="image/x.djvu" height="5091" width="6000" usemap="godzina_Polski_1_Ent_Mscript100.djvu" >

<PARAM name="DPI" value="100" />

<PARAM name="GAMMA" value="2.200000" />

<HIDDENTEXT>

<PAGECOLUMN>

<REGION>

<PARAGRAPH>

<LINE>

<WORD coords="2294,374,2686,288">Niedziela,</WORD>

<WORD coords="2743,363,2786,296">5</WORD>

<WORD coords="2825,262,3789,375">listopada</WORD>

</LINE>

</PARAGRAPH>

</REGION>

<REGION>

<PARAGRAPH>

<LINE>

<WORD coords="5030,262,5310,375">Rok 1</WORD>

</LINE>

</PARAGRAPH>

</REGION>

...

<LINE>

<WORD coords="3013,5091,3245,5051">własnem</WORD>

<WORD coords="3273,5091,3590,5050">narodowem</WORD>

<WORD coords="3649,5091,3804,5066">ĹĽyciem</WORD>

<WORD coords="3837,5091,4121,5067">cieszÄ…cego</WORD>

<WORD coords="4150,5091,4229,5061">siÄ™</WORD>

</LINE>

</PARAGRAPH>

</REGION>

</PAGECOLUMN>

</HIDDENTEXT>

</OBJECT>

<MAP name="godzina_Polski_1_Ent.djvu" ></MAP>

</BODY>

</DjVuXML>

Przeniesienie tekstu konwertowanej strony za pośrednictwem wirtualnej drukarki LizardTech Virtual Printer Pro.

Wirtualna drukarka LizardTech Virtual Printer Pro jest uzupełnieniem DocumentEditora oraz Workflow Managera. Jest aplikacją pozwalającą utworzyć pliki DjVu z plików elektronicznych różnych aplikacji (AutoCAD, MS Word, MS Excel, Corel Draw,…). Można powiedzieć, że jest aplikacją do wszystkich typów plików z pominięciem rastrowych plików graficznych. Za jej pośrednictwem warstwę tekstową można dodać tylko podczas konwersji elektronicznego pliku do formatu DjVu. Tworzenie warstwy tekstowej w tym procesie przypomina pozyskiwanie warstwy tekstowej z plików z zapisem wektorowym.

Z nieokreślonej liczby aplikacji, a co za tym idzie,  również z nieokreślonej liczby formatów plików, pliki w formacie DjVu powstają dwuetapowo. W pierwszym etapie procedura drukowania wywołuje sterownik drukarki (Black ICE EMF Capture Driver), który zgodnie z ustawionymi parametrami użytkownika, tworzy w tymczasowym folderze pliki emf (Enhanced Meta File). Plikom emf mogą towarzyszyć krótkie pliki tekstowe. Dla każdej strony konwertowanego dokumentu powstaje jeden plik emf. Dopiero gdy pliki te zostaną utworzone, uruchomiony zostaje enkoder formatu emf do formatu DjVu i pojawia się okienko dialogowe.

Należy pamiętać o tym, że kopiowanie tekstu dokumentu do warstwy tekstowej oparte jest w wirtualnej drukarce wyłącznie o podstawowy zestaw znaków lub rozszerzony (w DocumentEditor lub Workflow Manager dla rozpoznania OCR do dyspozycji jest około 100 języków). Dlatego przed wydaniem polecenia „Drukuj…”, należy upewnić się, czy w sterowniku drukarki opcja „Eastern character set”, jest – zgodnie z potrzebą – aktywna lub nie. Niestety, nawet prawidłowe ustawienie zestawu znaków nierzadko sprawi kłopot, gdy w wyrazach występują polskie litery. Można powiedzieć, że ten sposób osadzania warstwy tekstowej w pliku DjVu nie działa zadowalająco. Dla przykładu, nie ma problemu, by skonwertować dokument MS Worda zawierający tekst poziomo lub pionowo, a zawierający polskie znaki diakrytyczne. W przypadku arkusza Excela wyrazy takie do warstwy tekstowej nie zostaną przeniesione, zaś konwersja pliku w formacie pdf, w ogóle może w efekcie doprowadzić do powstania nieużytecznej warstwy tekstowej.

Poniżej przedstawiono 2 pliki DjVu, które utworzono z Worda i Excela. Posiadają warstwy tekstowe o właściwościach jak opisano wyżej.

Problemy pozyskania warstwy tekstowej zawierającej polskie znaki diakrytyczne leżą po stronie sterownika Black ICE. Są aplikacje, z których prawidłowo przejmuje zawartość tekstu, ale jest również wiele aplikacji z którymi sterownik ten sobie nie radzi. Oczywiście, wada ta ogranicza zastosowanie ostatniego już sposobu tworzenia warstw tekstowych w plikach DjVu, chyba, że w kolejnym wydaniu oprogramowania LizardTecha dołączony będzie uaktualniony możliwościami sterownik Black ICE.

Plik DjVu utworzony z MS Word     Plik DjVu utworzony z arkusza Excel

Wyświetlenie pliku DjVu na stronie zawierającej poszukiwany zwrot tekstowy.

Podczas tworzenia plików DjVu za pośrednictwem Workflow Manager – jak wspomniano już wyżej – można uaktywnić opcję tworzenia dla każdego powstałego jedno- lub wielostronicowego pliku DjVu odpowiadającego mu tekstowego pliku xml. Nakład pracy użytkownika to zaledwie jedno kliknięcie, natomiast wykorzystanie tak powstałego(-ych) pliku(-ów) to nie tylko możliwość ewentualnych poprawek zawartej w nim warstwy tekstowej. Takie pliki tekstowe można bardzo łatwo przeszukiwać, podobnie zresztą jak towarzyszące publikacjom metadane opisowe (zapisane np. w standardzie Dublin Core). Oznacza to, że gdyby indeksacji poddać także tekstowe pliki xml każdej publikacji DjVu, systemy udostępniające publikacje mogłyby nie tylko oferować swoje archiwa poprzez wyświetlanie kilku podstawowych kryteriów wyszukiwania, ale możliwym byłoby pełnokontekstowe przeszukiwanie całej „biblioteki cyfrowej”. Czytelnik w sytuacji nie posiadania informacji o autorze lub tytule, wcale nie traciłby możliwości odszukania odpowiedniej publikacji.

Nie zajmując się tym, czym jest indeksacja, jak działają systemy bazodanowe i co dzieje się z informacjami zawartymi w plikach xml podczas przekazania ich do systemu bazodanowego, załóżmy jedynie, że te pliki można przeszukiwać, nie tłumacząc co to oznacza.

Wyświetlenie publikacji

wcale nie musi być aż tak skomplikowane.

Zakładając realizację takiego pomysłu, należy poza posiadaniem kolekcji plików DjVu (z warstwami tekstowymi utworzonymi dowolnym sposobem) utworzyć odpowiadającą im kolekcję tekstowych plików xml.

Przypomnieć wypada, że :

taki plik xml zawiera m.in. :

przeglądarka plików DjVu firmy LizardTech (uruchamiana jako wtyczka przeglądarki internetowej typu FireFox, Opera lub ew. Internet Explorer) może również przyjąć - poza nazwą pliku DjVu - ciąg poleceń dotyczących sposobu wyświetlenia publikacji (a zapisanych w postaci CGI-Bin : &parametr=wartość), np.

www.djvu.pl/Folder1/Folder2/Publikacja.djvu?djvuopts&zoom=50&page=7&frame=no

lub w pliku

<A HREF="www.djvu.pl/Folder1/Folder2/Publikacja.djvu?djvuopts&zoom=50&page=7&frame=no" target="_blank">

Utworzenie listy hiperłączy, tak jak pokazano wyżej (wyników wyszukiwania może być więcej niż 1), wyświetlenie ich w okienku ze stosownymi komentarzami (np. zaczerpniętymi z metadanych) ułatwi czytelnikowi podjęcie decyzji o tym, którą spośród odszukanych publikacji (lub strony publikacji) - zawierających określony zwrot tekstowy - chciałby wyświetlić.

Gdyby opcja powyższa nie była możliwą, można utworzyć „w locie”  króciutkie pliki html wywołujące publikację, a z hiperłączy do takich plików html utworzyć listę wyświetlaną czytelnikowi.

<HTML>

<BODY style="margin:0; overflow:hidden">

<embed type="image/vnd.djvu" SRC="/Folder1/Folder2/Publikacja.djvu" width="100%" height="100%" flags="Frame=Yes Zoom=50 Page=7"></embed>

</BODY>

</HTML>

Jakkolwiek wariantów rozwiązania tego zadania jest wiele, temat można zamknąć, ponieważ nie było zamierzeniem artykułu prezentowanie sposobu programowania za pomocą języka html czy też php.

Ostatnią potrzebną informacją, jest sposób pozwalający na to, by odpowiednio pozycjonować wyświetloną stronę publikacji w oknie przeglądarki oraz widocznie uwypuklić odnaleziony zwrot.

To, czy publikacja zostanie wyświetlona z wykorzystaniem obiektu Embed (jak w powyższej ramce), czy też za pomocą CGI-Bin, nie jest istotne. Bez względu na wybór metody, należy użyć dwóch właściwości przeglądarki LizardTech : ShowPosition oraz Highlight.

Pierwsza z nich wywoływana jest wg składni : ShowPosition=x,y gdzie x oraz y są wartościami od 0 do 1 włącznie. Właściwość ta odpowiada za to, by strona publikacji DjVu w oknie przeglądarki wyświetliła się tak, aby punkt strony o współrzędnych {x;y} w miarę możliwości był jak najbliżej środka okna przeglądarki. Gdy x=y=0, strona zostanie wyświetlona od lewego górnego narożnika, gdy x=y=1, strona będzie wyświetlona do prawego dolnego narożnika, zaś gdy właściwości nadamy wartości ½ : ShowPosition=0.5,0.5 środek strony publikacji wyświetlony będzie w środku okna przeglądarki. Wartości x oraz y liczone są od górnego lewego narożnika strony.

Kolejna właściwość powoduje dodanie do fragmentu strony prostokątnego podświetlenia o podanej wielkości i kolorze. Posiada składnię HighLight=x,y,w,h,c gdzie x oraz y są odległością w pikselach od dolnego lewego narożnika strony, w oraz h to szerokość i wysokość podświetlenia, a c to kolor podświetlenia. Poziomu przeźroczystości podświetlenia zadeklarować nie można. Highlight jest jedyną właściwością, którą w ciągu poleceń wywołać można wielokrotnie. Każde jej przywołanie powoduje powstanie kolejnego obiektu podświetlenia (można czasami na niektórych witrynach spotkać dwu- lub trzykrotne przywoływanie innych właściwości, a mianowicie NavPane lub Toolbar, ale sposób taki nie jest zalecany, zwłaszcza, że wszystkie takie przywołania dotyczą tego samego obiektu czyli odpowiednio albo panelu albo paska narzędziowego).

Zakładając, że

to :

podczas wyszukiwania, system analizując kolejne pliki xml (a w nich kolejne strony publikacji), w sytuacji odnalezienia kolejnego wystąpienia zwrotu, w wierszu „otwierającym” komplet informacji o danej stronie :

<OBJECT data="http://www.djvu.pl/DjVu/WiadChemiczne/rok1973_zeszyt9.djvu"

type="image/x.djvu" height="3618" width="2404" usemap="691.djvu">

odczytuje pełną nazwę publikacji, szerokość i wysokość arkusza, po czym z - umieszczonych w pliku poniżej -wierszy warstwy tekstowej odczytuje koordynaty odszukanego zwrotu :

<WORD coords="1612,440,1916,405">chlorowodoru</WORD>

<WORD coords="1674,665,1982,628">chlorowodoru</WORD>

<WORD coords="1208,855,1517,816">chlorowodoru</WORD>

Z odczytanej wartości wysokości strony i koordynat słów, przelicza wartości dla kolejnych podświetleń odszukanych zwrotów :

3618440 = 3178, 1916 – 1612 = 304,       440 – 405 = 35

3618665 = 2953, 1982 – 1674 = 308,       665 – 628 = 37

3618855 = 2763, 1517 – 1208 = 309,       855 – 816 = 39

Highlight=1612,3178,304,35, FFFF10 Highlight=1674,2953,308,37,50FF50 Highlight=1208,2763,309,39, 50FF50

Kolory ustawić można dowolnie (dla omawianego przykładu wybrano żółty dla poszukiwanego zwrotu i zielony dla pozostałych wystąpień). Numer koloru podaje się liczbą szesnastkową, a właściwie 3 liczbami szesnastkowymi reprezentującymi składowe barwy Red, Green, Blue.

Pozostaje jeszcze pozycjonowanie strony, które w odróżnieniu od precyzji wyznaczenia podświetlenia (do 1 piksela) wyznaczyć można z przybliżeniem. Dzieje się tak dlatego, ponieważ jedni użytkownicy ukrywają pasek narzędziowy (który posiada określoną wysokość), inni wyświetlają panel miniatur (który posiada określoną szerokość), komputery wyświetlają obraz dla różnych rozdzielczości i różnych styli (klasyczny, XP), okno przeglądarki jest zmaksymalizowane lub posiada co chwilę inny rozmiar,... w związku z czym jako cel stawia się, by poszukiwany zwrot pojawił się w oknie przeglądarki po wyświetleniu określonej strony. Jeżeli publikacja w oknie przeglądarki wyświetlona zostanie z dopasowaniem rozmiaru „cała strona” lub będzie całkowicie mieścić się w jej oknie, ShowPosition nie zostanie uaktywnione, ponieważ przy wyświetleniu całej strony widać każdy jej fragment.

W omawianym przykładzie przyjęto, że odległość y będzie obliczona względem górnego lewego narożnika odszukanego słowa (a zatem jako wartość ilorazu : ostatnia koordynata/wysokość strony), natomiast wartość x będzie miejscem zakończenia słowa (wartość ilorazu : trzecia koordynata/szerokość strony, co jest bezpieczne dla długich zwrotów).

Wyniki wystarczy połączyć w hiperłącze i ... koniec pracy :

http://www.djvu.pl/djvu/Rok1973_XXVII_Z9/directory.djvu?djvuopts&Frame=Yes&Zoom=200&Toolbar=Yes,Top-Lizard, Rotate,BW,Calibrate&Page=71&NavPane=Thumbnails,Right&Layout=Single&Showposition=0.797,0.112& Highlight=1612,3178,304,35,FFFF00&Highlight=1674,2953,308,37,50FF50&Highlight=1208,2763,309,39,50FF50

http://www.djvu.pl/djvu/Rok1973_XXVII_Z9/directory.djvu?djvuopts&Frame=Yes&Zoom=200&Toolbar=Yes,Top-Lizard, Rotate,BW,Calibrate&Page=71&NavPane=Thumbnails,Right&Layout=Single&Showposition=0.824,0.174& Highlight=1674,2953,308,37,FFFF00&Highlight=1612,3178,304,35,50FF50&Highlight=1208,2763,309,39,50FF50

http://www.djvu.pl/djvu/Rok1973_XXVII_Z9/directory.djvu?djvuopts&Frame=Yes&Zoom=200&Toolbar=Yes,Top-Lizard, Rotate,BW,Calibrate&Page=71&NavPane=Thumbnails,Right&Layout=Single&Showposition=0.631,0.205& Highlight=1208,2763,309,39,FFFF00&Highlight=1674,2953,308,37,50FF50&Highlight=1612,3178,304,35,50FF50

Oczywiście tak nieczytelne hiperłącza (linki) raczej odstraszają, stąd też system udostępniający publikację powinien tak zebrane wyniki wyszukiwania przedstawić w sposób „przyjazny”, czy też umożliwiający dokonanie intuicyjnego wyboru, dla przykładu :

Nazwa publikacji

Wiadomości Chemiczne, zeszyt 9

Pierwszy opis zaczerpnięty z metadanych

...

Kolejny opis

...

Ostatni opis zaczerpnięty z metadanych

...

Poszukiwany zwrot

chlorowod

l.p.

Strona nr

Nr kolejny

Odszukano

Wyświetl publikację

1

2

1

chlorowodoru

2

21

1

chlorowodorek

3

28

1

chlorowodór

4

28

2

chlorowodoru

5

30

1

chlorowodorek

6

30

2

chlorowodorku

7

60

1

chlorowodorowego

8

71

1

chlorowodoru

9

71

2

chlorowodoru

10

71

3

chlorowodoru

Dysponując taką listą j.w., wystarczy wskazać dowolną pozycję (przyciskiem „DjVu”) i wyświetli się okienko podobne do poniższego :

Podsumowując powyższe stwierdzić można, że stosując odpowiednie narzędzia, które udostępnia przeglądarka plików DjVu firmy LizardTech, dokonując rozbudowy zasobów systemu informatycznego udostępniającego publikacje w formacie DjVu (o poindeksowane informacje o zawartości i lokalizacji na arkuszu warstwy tekstowej), funkcjonalność biblioteki cyfrowej może ulec znaczącemu rozszerzeniu. Zaś to, czy warstwy tekstowe publikacji DjVu powstaną na drodze :

Zależy tylko od potrzeb użytkownika.



Czerwiec 2007

Grzegorz Bednarek
GB Soft, Zabrze
grzegorz@djvu.pl

http://www.djvu.com.pl