Rozszerzanie możliwości Writera.

Uwaga: przeglądasz tę stronę na urządzeniu o niewielkim ekranie (szerokość < 640px). Niektóre zamieszczone w artykule ilustracje i animacje mogą stać się nieczytelne po dopasowaniu ich do rozdzielczości tego ekranu.

Yestok.pl

Jerzy Moruś

© Wszystkie prawa zastrzeżone. Wykorzystanie całości serwisu lub jego fragmentów bez pisemnej zgody autora zabronione.

Rozszerzanie możliwości pakietu (x)Office.



Opracowanie powstało w oparciu o wersję programu istniejącą w trakcie jego pisania, Libre Office: 4.0.5, Apache OpenOffice: 3.4.1.


Od początku pakiet OpenOffice.org, obecnie Apache OpenOffice, i wyłoniony z tego projekt LibreOffice, ma możliwość rozbudowywania funkcjonalności poprzez oprogramowanie tworzone przez szerokie grono niezależnych programistów. Przygotowane oprogramowanie dostarczane jest w postaci plików z rozszerzeniem OXT i udostępniane użytkownikowi pakietu poprzez menedżera rozszerzeń, przywoływanego z menu „Narzędzia – Menedżer rozszerzeń...”. Rozszerzenia mogą być instalowane dwojako. Użytkownik o uprawnieniach administratora (root) może zainstalować rozszerzenie dla wszystkich użytkowników komputera lub tylko dla siebie. Pozostali mogą instalować rozszerzenia tylko dla siebie.

Menedżer rozszerzeń dostępny jest w każdym module wchodzącym w skład oprogramowania (x)Office i może zarządzać dowolnymi rozszerzeniami. Oznacza to, że będąc np. we Writerze można dodać lub usunąć rozszerzenie przeznaczone np. dla programu Calc.

Dostępne rozszerzenia znajdują się w repozytoriach, na stronach internetowych zależnych od używanego pakietu: https://extensions.libreoffice.org – dla LibreOffice i https://extensions.openoffice.org/ – dla Apache OpenOffice. Wiele z udostępnianych rozszerzeń działa w obu pakietach biurowych.

Aby dodać rozszerzenie do swojego oprogramowania należy pobrać odpowiedni plik OXT i – postępując klasycznie – wywołać wspomniane już polecenie „Narzędzia – Menedżer rozszerzeń...”. W otwartym oknie, podobnym do tego na poniższej ilustracji, wybrać przycisk „Dodaj...”, a następnie, w kolejnym oknie, wskazać plik zawierający rozszerzenie.

Okno menedżera rezszerzeń.
Rys. 1: Okno menedżera rozszerzeń.

Okno, jak widać, zawiera także przycisk „Sprawdź aktualizacje...”, pozwalający zweryfikować zainstalowane rozszerzenia pod kątem ich nowszych wersji. Rozszerzenia oznaczone znacznikiem „kłódki” nie mogą zostać usunięte, ale ich wskazanie w oknie może pozwolić na ustawienie dodatkowych opcji. Widoczne na ilustracji pierwsze rozszerzenie, „Angielskie słowniki...”, po kliknięciu udostępnia przycisk „Opcje...” jak na rysunku poniżej.

Zaznaczone rozszerzenie angielskich słowników...
Rys. 2: Zaznaczone rozszerzenie „Angielskie słowniki...”.

Pozwala on dokładniej ustalić dodatkowe parametry tego rozszerzenia w kolejnym wyświetlonym oknie dialogowym.

Ustawianie opcji rozszerzenia.
Rys. 3: Opcje rozszerzenia.

Inne rozszerzenia, instalowane przez użytkownika, pozwalają na ich wyłączenie, gdy nie trzeba z nich korzystać lub usunięcie, gdy nie są już potrzebne.

Rozszerzenie GeoMap z widocznymi przyciskami "Wyłącz" i "Usuń".
Rys. 4: Rozszerzenie GeoMap z widocznymi przyciskami „Wyłącz” i „Usuń”.

Uaktywnione rozszerzenie wyświetla zazwyczaj w obszarze opisu skróconą informację o sobie.

Okno menedżera zawiera jeszcze trzy dodatkowe opcje, określające typ rozszerzeń, które chcemy zobaczyć na liście. Znajduje się tu także link do repozytorium rozszerzeń właściwych dla zainstalowanego oprogramowania.

W tym opracowaniu chcę przedstawić i zaproponować cztery rozszerzenia, które wydają mi się interesujące.

Rozszerzenie do programu Calc.
Zamiana wartości liczbowej na jej słowną prezentację.
Numbertext 0.9.5

Nowa wersja tego rozszerzenia to 1.0.5

O zamianie liczby na jej wartość słowną pisałem w odrębnym opracowaniu ( Zamiana wartości liczbowej na wartość słownie w Calcu). Przedstawiłem wówczas metodę, zgodnie z która należało włączyć do swojego arkusza dodatkowy arkusz, zawierający algorytm przekształcania takiej wartości.

Zainstalowanie rozszerzenia doda do programu Calc dwie nowe funkcje, które można będzie wykorzystać w arkuszu. Różnica w działaniu obu metod polega na tym, że arkusz kalkulacyjny skonstruowany zgodnie z pierwszą metodą, może zostać skopiowany, przeniesiony na inny komputer i w nowym miejscu nadal wartości będą zamieniane na ich słowny odpowiednik. Druga metoda, a więc wykorzystująca rozszerzenie, utraci właściwości przekształcania po przegraniu do nowego komputera, chyba że ten nowy komputer będzie miał także zainstalowane to rozszerzenie.

Rozszerzenie, o jakim tu piszę, znajduje się w repozytorium LibreOffice w pliku numbertext.oxt.

Nowe zainstalowane funkcje to: NUMBERTEXT(wartość;język) oraz MONEYTEXT(wartość;waluta;język). Funkcje zostaną dodane do kategorii „Dodatek” jak na ilustracji. Kreator funkcji wykrywa język macierzysty pakietu i udostępnia stosowny interfejs. Dostępne są interfejsy w języku angielskim, niemieckim, węgierskim (to język autora tego rozszerzenia), włoskim i serbskim (w wersji łacińskiej i cyrylickiej). Jeżeli lokalizacja oprogramowania jest inna niż wymienione powyżej, wyświetlany jest interfejs angielski.

Użycie funkcji NUMBERTEXT lub MONEYTEXT z pomocą kreatora.
Rys. 5: Wstawianie funkcji za pomocą kreatora.

W obu funkcjach obowiązkowy jest tylko pierwszy parametr. Brak parametru „język” oznacza przyjęcie języka, w którym funkcjonuje pakiet oprogramowania. Jeśli argument ten jest podawany jako literał, to musi być ujęty w cudzysłów. Argument ten w zasadzie jest zapisem dwuczłonowym, jednak większości przypadków wystarczy podać tylko pierwszy człon tego argumentu. Niekiedy jednak należy dokładniej sprecyzować język, np. język portugalski obowiązuje także w Brazylii a francuski w Belgii i Szwajcarii, wówczas trzeba podać pełną wartość argumentu. Oto dopuszczalne wartości tego parametru:

Dopuszczalne wartości argumentu „język” w funkcjach NUMBERTEXT i MONEYTEXT

Wartość Język Wartość Język
af-ZA africaans ca-ES kataloński
cs-CZ czeski da-DK duński
de-DE niemiecki el-EL grecki
en-IN angielski w indyjskim i południowoazjatyckim systemie numerowania (lakh = 100.000, crore = 10.000.000) en-US angielski (USD 20.25 -> twenty dollars and twenty-five cents)
en-US-2 angielski (odmiana USD 20.25 -> twenty and 25/100 dollars) eo Esperanto
es-ES hiszpański fi-FI fiński
fr-BE francuski, Belgia fr-CH francuski, Szwajcaria
fr-FR francuski he-IL hebrajski
hu-HU węgierski hu-HU_2 węgierski (formalny)
id-ID indonezyjski it-IT włoski
ja-JP japoński ja-JP-2 japoński (formalny)
ko-KP koreański, Korea Północna ko-KR koreański, Korea Południowa
lb-LU luksemburgski lt-LT litewski
lv-LV łotewski nl-NL holenderski
pl-PL polski pt-BR portugalski, Brazylia
pt-PT portugalski ro-RO rumuński
ru-RU rosyjski sh-RS serbski, łaciński
sl-SI słoweński sr-RS serbski, cyrylica
sv-SV szwedzki th-TH tajski
tr-TR turecki vi-VN wietnamski
zh-ZH chiński (uproszczony) zh-ZH-2 chiński (uproszczony, formalny)
Inne systemy numerowania:
Roman Numeracja rzymska (wariant z nawiasami) Roman_2 Numeracja rzymska (z nadkreśleniami, pionowymi kreskami i opcjonalnie znakami specjalnymi)
Hung stary zapis węgierski Suzhou chińska numeracja Suzhou

Jeśli argumenty zostaną podane niewłaściwie, zastosowany zostanie język angielski. Wielkość liter ma znaczenie. W większości przypadków można ograniczyć się do członu pierwszego, a więc np.„pl” – język polski, „en” – angielski, „fr” – francuski czy „ru” – rosyjski.

W funkcji MONEYTEXT argument „waluta” może zostać pominięty, zostanie wówczas przyjęta waluta kraju wynikającego z argumentu „język”, jeśli jednak zostanie podany to musi to być podany jako trzyliterowy skrót waluty, taki jak stosowany jest w bankach lub kantorach wymiany walut. Symbol ten musi być wpisany wielkimi literami. Skrót „XXX” oznacza brak podawania waluty (dokładniej, każdy trzyliterowy skrót, napisany wielkimi literami a niedopuszczalny dla danego języka, spowoduje pominięcie waluty). Jeśli symbol waluty nie zostanie podany wielkimi literami, to wyświetlona zostanie wartość tekstowa, składająca się z tego symbolu i liczby odpowiadającej argumentowi „wartość”. Ewentualny znak dziesiętny zostanie zastąpiony kropką. Funkcja MONEYTEXT przed wyświetleniem wyniku zaokrągla wartość do jednostek monetarnych przywołanego systemu walutowego. Jeśli jako argumenty funkcji NUMBERTEXT i MONEYTEXT podano adresy komórek, to komórki odpowiadające za „język” i „walutę” nie mogą być puste. Dopuszczalne skróty waluty zależą od argumentu „język”.

Dopuszczalne wartości argumentu „waluta” w funkcji MONEYTEXT dla języka polskiego
( „pl”, „pl-PL” )

AUD dolar australijski
BGN lew bułgarski
CHF frank szwajcarski
CAD dolar kanadyjski
CNY juan chiński
EUR euro
GBP funt brytyjski
HUF forint węgierski
JPY jen japoński
PLN złoty polski
RUB rubel rosyjski
USD dolar amerykański
XXX bez podania waluty

dla języka rosyjskiego („ru”) dopuszczalne są:

EUR euro
GBP funt brytyjski
RUB rubel rosyjski
UAH hrywna ukraińska
USD dolar amerykański

dla języka włoskiego „it”:

CHF frank szwajcarski
CNY juan chiński
EUR euro
GBP funt brytyjski
JPY jen japoński
USD dolar amerykański

a np. dla języka portugalskiego w Brazylii
(„pt-BR”):

AOA kwanza angolska
ARG peso argentyńskie (ARS)
BOB boliviano boliwijskie
BRL real brazylijski
CHF frank szwajcarski
CNY juan chiński
CVE escudo zielonoprzylądkowe
EUR euro
GBP funt brytyjski
JPY jen japoński
MOP pataca Makao
MXN peso meksykańskie
MZM metical mozambijski (MZN)
STD dobra Wysp Świętego Tomasza i Książęcej
USD dolar amerykański
XOF frank CFA BCEAO

Autor tego oprogramowania nie uniknął pomyłek. Zgodnie z normami, waluta Argentyny ma skrót ARS a Mozambiku MZN, nas jednak to nie dotyczy (chyba!). Dla dociekliwych, frank CFA BCEAO to wspólna waluta czternastu państw afrykańskich (nie będę ich tu jednak wymieniał).

Argument „waluta” może przyjąć jeszcze dwie wartości. Nie odpowiadają one żadnej walucie i zadziałają tylko przy niektórych językach (polskim - nie). Podawane są, w odróżnieniu od skrótów walut, małymi literami. Pierwszy „ord” przedstawia wartość jako liczebnik porządkowy i spełnia swą rolę tylko w językach: angielskim, niemieckim, francuskim i węgierskim. Drugi zapisywany w postaci „ord2” dotyczy tylko języka angielskiego i przedstawia liczebnik porządkowy zapisany cyframi z odpowiednim sufiksem, np. liczbę 65 jako 65th.

Podczas definiowaniu funkcji, należy pamiętać, aby argumenty „język” i „waluta”, wpisywane bezpośrednio do treści funkcji, obejmować cudzysłowem. Jak na ilustracji poniżej.

Określanie argumentów funkcji MONEYTEXT w kreatorze.
Rys. 6: Okno kreatora funkcji MONEYTEXT.

Na kolejnej ilustracji prezentuję wyniki obu funkcji dla kilku wybranych argumentów.

Przykładowe wyniki zwracane przez funkcje NUMBERTEXT i MONEYTEXT.
Rys. 7: Wyniki funkcji NUMBERTEXT i MONEYTEXT.

Ci, którzy chcieliby zainstalować u siebie to rozszerzenie mogą je pobrać klikając link poniżej. Zanim pobierzecie Państwo plik, pamiętacie, że za jego pobranie odpowiada kliknięcie odnośnika (łącza) prawym przyciskiem myszki i wybranie z wyświetlonego menu pozycji w rodzaju „Zapisz element docelowy jako...” lub „Zapisz link jako...”. Kliknięcie lewym przyciskiem może spowodować inne działania niż pobieranie, jeśli plik danego typu jest rozpoznawany przez przeglądarkę do bezpośredniego otwarcia. Pobierana wersja, oparta o wydanie 0.9.5 ma nazwę pliku numbertextpl-0.9.5.oxt, gdyż utworzyłem dodatkowo polski interfejs kreatora funkcji (widać to na ilustracjach). Poza tym niczym nie różni się od pliku pobieranego z repozytoriów. Obecnie link kieruje do repozytorium rozszerzeń i wersji 1.0.5, w której polski interfejs jest już wbudowany. Kliknij aby pobrać plik numbertext-1.0.5.oxt.

Rozszerzenie do programu Writer.
Dodawanie do dokumentu mapki z lokalizacją wybranego punktu.
GeoMap wersja 3.0.1.

Rozszerzenie zapisane w pliku o nazwie geomap.oxt pozwala dodać do dokumentu tworzonego we Writerze mapkę z lokalizacją wybranego punktu. Oprogramowanie to opiera się o funkcjonowanie serwisu internetowego mapquest.com, więc utworzenie mapki wymaga połączenia internetowego. Użytkownik może określić rozmiar obrazka, jego skalę i format wstawianej grafiki.

Rozszerzenie to dostępne jest w repozytorium LibreOffice, nie ma go natomiast w repozytorium Apache OpenOffice. Można wykorzystać plik z LibreOffice, choć wymaga to pewnej dodatkowej pracy, którą tu także opiszę.

Po zainstalowaniu rozszerzenia w pakiecie LibreOffice, w pasku narzędziowym, na pierwszej pozycji, pojawi się nowa ikona, ulokowana w oddzielnym zasobniku tego paska. Pokazuje ją poniższa ilustracja.

Ikona rozszerzenia GeoMap na pasku narzędziowym.
Rys. 8: Ikona rozszerzenia GeoMap na pasku narzędziowym

Instalacja tego rozszerzenia w pakiecie Apache OpenOffice (4.0.1) nie tworzy takiej ikonki. Aby móc korzystać w prosty sposób z tego rozszerzenia, należy utworzyć własne narzędzie wywołujące. O tym jak to zrobić mówi prezentacja zamieszczona poniżej.