Korzystając z bibliotek FastReport.NET (Core), FastReport Open Source i FastReport Mono w systemie operacyjnym Linux, jak również podczas zapisywania dokumentów jako obrazów lub plików PDF, istnieje możliwość nieprawidłowego wyświetlania tekstów Unicode w podglądzie raportu.
Jednym z najczęstszych problemów jest błąd w łączeniu wyrazów, a w rezultacie nieprawidłowe odstępy między wyrazami. Na przykład, podczas używania języka tajskiego w systemie operacyjnym Windows widzimy następujący tekst:
Po uruchomieniu tego samego raportu w systemie operacyjnym Linux Ubuntu, poniższy wiersz jest nieprawidłowo sformatowany:
Mogą być wystąpić problemy z zawijaniem wyrazów. Spójrzmy na inny przykład z językiem tajskim w systemie operacyjnym Windows:
Ten sam tekst jest wyświetlany nieprawidłowo w systemie operacyjnym Linux Ubuntu:
Takie błędy w wyświetlaniu tekstu można zaobserwować również w innych językach.
Na szczęście, jest rozwiązanie – biblioteka libgdiplus do samodzielnego montażu ze źródła z Pango.
Przed rozpoczęciem zaleca się wykonanie kopii zapasowej plików /usr/lib/libgdiplus*.*, ponieważ zostaną one nadpisane nowymi w procesie budowy biblioteki. W tym przypadku można przywrócić system do stanu pierwotnego, jeśli nie uzyskano pożądanego wyniku.
W pierwszej kolejności należy zainstalować wymagane zależności za pomocą polecenia:
$ sudo apt-get install libgif-dev autoconf libtool automake build-essential gettext libglib2.0-dev libcairo2-dev libtiff-dev libexif-dev
Następnie należy zrobić kopię potrzebnej biblioteki libgdiplus z repozytorium GitHub:
$ git clone https://github.com/mono/libgdiplus.git
Kolejny krok to przejście do folderu libgdiplus i wykonanie polecenia budowania:
$ ./autogen.sh --with-pango --prefix=/usr $ make
Jeśli budowa zakończyła się sukcesem i nie wystąpiły żadne błędy, można zainstalować zbudowaną bibliotekę:
$ sudo make install
Pliki te zastąpią stare pliki w katalogu /usr/lib.
Teraz można uruchomić program z raportami i sprawdzić, czy działa poprawnie.
Na przykład, można zobaczyć jak FastReport Mono działa w systemie Linux Ubuntu 18.04:
Wszystkie powyższe informacje odnoszą się również do aplikacji internetowych wykorzystujących framework .NET Core i Mono.
Życzę powodzenia i mniej problemów z programami wieloplatformowymi!