Strona 1 z 1
Krawędzi - zmiana grubości
: czw maja 19, 2022 11:41 am
autor: Ainat
wersja 4.12
w zakładce Format - Krawędzie - Linia - Styl są wyszczególnione grubości linni do wybrania obramowania komórtki.
W moim przypadku ; patrząc od samej góry mam następujące grubości linni : 0,05 pt , 0,50 pt , 1,00 pt , 2,5 pt itd.
Rozstrzał między 1,00 pt a 2,5 pt jest dla mnie za duży. Co mam zrobić żeby dodać 1,50 pt i 2,00 pt ?
Re: Krawędzi - zmiana grubości
: czw maja 19, 2022 2:42 pm
autor: Jan_J
W LibreOffice (patrzę na 7.2) ustalenie grubosci linii nastepuje nie przez wybór z listy, tylko przez spin box:
[wartość do ackeptacji] [+][-]
przy czym wartość da się wpisać z dokładnością do 0,1 punktu. Jest ona pamiętana, mam nadzieję, że jest też adekwatnie ustawiana jako parametr linii.
OpenOffice'a nie mam, nie sprawdzę. Sądzę że się nie da, skoro wybór jest ograniczony do listy. Jest to ograniczenie formularza, nie dotyczy ono ani formatu danych, ani OpenOffice jako całości.
Re: Krawędzi - zmiana grubości
: czw maja 19, 2022 2:58 pm
autor: Jermor
Przejdź na LibreOffice. W okienku opcji krawędzi ustalasz oddzielnie styl linii i oddzielnie jej grubość. W Libre nie ma jednak niektórych stylów dostępnych w Apache OpenOffice, np. podwójnej linii o różnych grubościach. Jest za to styl linii kropkowanej, kreskowanej.
- obraz_2022-05-19_141038511.png (25.71 KiB) Przejrzano 4809 razy
Jeśli jednak chcesz, to zawsze możesz napisać sobie makro, które ustali odpowiednie szerokości obramowania. Musisz w nim samodzielnie określić właściwości: Bottom...,Left..., Right..., TopBorder oraz LineStyle.
Takie makra znajdziesz np. tutaj:
https://wiki.documentfoundation.org/Macros/Writer/003 albo tutaj:
https://ask.libreoffice.org/t/calc-sett ... acro/54433, po dopasowaniu do własnych potrzeb możesz z nich korzystać.
Dla formalności dodaję info nt. stylu linii:(to co możesz podać w wierszu zapisanym tak: .LineStyle = com.sun.star.table.BorderLineStyle.DOUBLE, albo tak .LineStyle=3)
NONE = 0x7FFF;
SOLID = 0;
DOTTED = 1;
DASHED = 2;
DOUBLE = 3;
THINTHICK_SMALLGAP = 4;
THINTHICK_MEDIUMGAP = 5;
THINTHICK_LARGEGAP = 6;
THICKTHIN_SMALLGAP = 7;
THICKTHIN_MEDIUMGAP = 8;
THICKTHIN_LARGEGAP = 9;
EMBOSSED = 10;
ENGRAVED = 11;
OUTSET = 12;
INSET = 13;
FINE_DASHED = 14;
DOUBLE_THIN = 15;
DASH_DOT = 16;
DASH_DOT_DOT = 17;
BORDER_LINE_STYLE_MAX = 17
Re: Krawędzi - zmiana grubości
: czw maja 19, 2022 6:28 pm
autor: Ainat
Libre mi nie przypasował i dawno wróciłem do Office i to do starszej wersji bo wtedy najnowsza też mi nie przypasowała.
Te krawędzie tylko mnie wkurzają i od kilku lat nie mogę dać sobie rady; brakuje 1,00 pt i 1,5 pt.
Czy podane makra spowodują, że te linie pokarzą się w załączonej zakładce Krawędzie ?
A może da radę to zrobić edytując konkretny plik ?
Re: Krawędzi - zmiana grubości
: czw maja 19, 2022 9:40 pm
autor: Jermor
Nie. To makro nie sprawi, że na liście opcji pojawią się nowe krawędzie.
Musisz wiedzieć, że makro generując linie określa ich grubość nie w punktach, lecz w setnych częściach milimetra. Zatem grubość 100 oznacza 1 mm.
Musisz zatem samodzielnie przeliczyć punkty drukarskie na miarę metryczną. Można przyjąć, że 1 punkt typograficzny odpowiada 1/72 cala, czyli 0,3528 mm. Zatem wartości 1,5 i 2 pkt odpowiadają grubości linii, po zaokrągleniu: 53 i 71.
Napisałem tak na szybko dwa makra. To podstawowe robi obramowanie wskazanego obszaru. Drugie, to funkcja użytkownika, która pozwala wskazać w jakim arkuszu, jaki obszar i jaką grubością linii ma zostać objęty.
Funkcja jest wywoływana następująco: KRW(arkusz;obszar;grubość;kolor), czyli przykładowo tak: =KRW("Arkusz2";"C2:D8";53;&hff0000). Spowoduje to, że w Arkusz2 obszar C2:D8 zostanie objęty krawędziami o grubości 1,5 pkt. w kolorze czerwonym. Kolor można podawać jako zwykłą liczbę. Pominięcie czwartego argumentu zastosuje kolor czarny. Równoczesne pominięcie trzeciego argumentu spowoduje zastosowanie grubości 35. Uwaga: opuszczenie trzeciego argumentu (gdy wystąpi czwarty) oznacza zastosowanie grubości 0 (czyli zlikwidowanie linii).
Trzeba jednak o czymś wiedzieć. Jeśli we wprowadzonej funkcji zmienimy obszar, to liniowanie w dotychczasowym obszarze nie zniknie. Także gdy funkcja zostanie usunięta, liniowanie nie zniknie. Samo liniowanie można usunąć skrótem CTRL+M po zaznaczenie obszaru, albo funkcją, podając wymagany obszar i grubość 0.
W załączeniu plik z tym rozwiązaniem.
Re: Krawędzi - zmiana grubości
: pt maja 20, 2022 10:15 am
autor: Ainat
Czyli proponowane makra zadziałają tylko do jednostkowej/jednorazowej sytuacji (arkusza, komórki), i nie pojawią się w wyborze w zakładce "krawędzie - linie - styl" na stałe ? Ja szukam takiej funkcjonalności żeby to było dodane do tej karty i zostało już na stałe.
Po prosu chciałbym dodać do listy wyboru potrzebne mi style linii krawędzi na stałe do programu.
Czy można to zrobić ?
Re: Krawędzi - zmiana grubości
: pt maja 20, 2022 10:36 am
autor: Jan_J
Makro wysłane przez @Jermor'a da się uruchomić przez Narzędzia→Makra, da się je podpiąć do skrótu klawiszowego, do wpisu w menu, do przcyisku, do nowej listwy narzędziowej, a prawdopodobnie także do nowej pozycji w liście wyboru.
Nie jest to „aż tak” proste, jak pokazał @Jermor. Zamiast makra realizującego właściwą robotę trzeba będzie napisać makro rozszerzające interfejs, a najwygodniej byłoby zamknąć całość w formie dodatku (.oxt). Nie jest to wielka praca ani wymagająca specjalnych kwalifikacji, ale zamiast dajmy na to 50 wierszy kodu będzie ich trzeba powiedzmy około 300. Wobec faktu, że cała ta funkcjonalność w Libre po prostu jest gotowa, zaś Apache OO ledwie zipie jeśli chodzi o przyszłość, mała jest szansa, by ktoś się podjął to zrobić.
Re: Krawędzi - zmiana grubości
: pt maja 20, 2022 10:54 am
autor: Ainat
Rozumiem
To może jest możliwość zmienić grubość istniejącego stylu ?
Re: Krawędzi - zmiana grubości
: sob maja 21, 2022 9:08 pm
autor: Jan_J
Niewykluczone, że da się to zrobić modyfikując wpis w którymś tekstowych plików wchodzących w skład pakietu i opisujących jego konfigurację. Szukałem, nie znalazłem, ale to jeszcze nie dowód, że tak się nie da.
Z tym że jest to sposób typu „jazda po bandzie”. A już na pewno taką modyfikację szlag trafi przy każdej aktualizacji.
Re: Krawędzi - zmiana grubości
: pn maja 23, 2022 10:19 pm
autor: Jermor
Napisałem makro, które realizuje twoje potrzeby. Pozwala ono na uzyskanie krawędzi o maksymalnej grubości 12 pkt. Wszystkie te wartości można podawać z dwoma cyframi po przecinku.
Makro rozpoznaje, z jaką wersją Calca będzie współpracować. Apache OpenOffice wykorzystuje inny sposób tworzenia obramowań niż LibreOffice.
Apache zakłada, że każde obramowanie składa się z dwóch linii: zewnętrznej (outer) i wewnętrznej (inner), między którymi znajduje się odstęp (distance). Dobierając odpowiednie szerokości uzyskamy wymaganą postać. LibreOffice określa tylko jedną szerokość, która jest szerokością całego stylu linii. Dla pojedynczej linii ciągłej jest to szerokość linii. Style (wybierane z listy) same określają konkretne wymiarowania w obrębie podanej szerokości. W parametrach można określić kolor linii podając wartości składowych: Red, Green, Blue. Kolor jest wspólny dla wszystkich krawędzi. Okno dialogowe udostępnia tylko te parametry, które dotyczę użytej wersji Calc. Można także określić czy mają wystąpić wewnętrzne linie poziome i pionowe.
Makro rozpoznaje wszystkie zaznaczone obszary w arkuszu i wykona krawędzie dla nich wszystkich. Jeśli żaden obszar nie będzie zaznaczony, krawędzie zostaną zastosowane do aktualnie aktywnej komórki.
- Okno dialogowe dla Apache OpenOffice
- obraz_2022-05-23_220141753.png (16.4 KiB) Przejrzano 4700 razy
Plik jest przygotowany w postaci rozszerzenia oxt. Po pobraniu należy je dodać do pakietu przy pomocy menadżera rozszerzeń.
W swoim wybranym pasku narzędzi można dodać ikonkę uruchamiającą makro. Jak to można zrobić opisałem tutaj:
https://yestok.pl/lbo/y35.php w części opisującej rozszerzenie GeoMap.
Oto plik do pobrania:
- krawędzie.oxt
- Jest to druga, zmodyfikowana wersja rozszerzenia.
- (4.01 KiB) Pobrany 142 razy
Jest to druga wersja rozszerzenia. Funkcjonalnie działa dokładnie tak samo jak poprzednia. W tej zmodyfikowałem kod, upraszczając przetwarzanie.
Plik utworzy bibliotekę Edges w kontenerze "Moje makra". Uruchomić należy makro "Edge" znajdujące się w module "Edges". Korzystając z możliwości zawartych w poleceniu "Narzędzia -> Dostosuj..." można utworzyć własną pozycję w pasku narzędzi i/lub w Menu.
Nie pracuję już (praktycznie) z Apache OpenOffice, po przygotowaniu tego oprogramowania okazało się, że wersja 4.1.12 nie akceptuje makr uruchamianych z kontenera "Moje makra" przy poziomie bezpieczeństwa innym niż "niskie" (może tylko niepodpisanych certyfikatem, ale tego nie miałem jak sprawdzić). Piszesz, że korzystasz ciągle ze starszej wersji, więc myślę, że nie będzie problemu.
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 9:20 am
autor: cwolan
@Jermor
Podziękowanie za makro.
Dwie oczywiste uwagi:
- w formantach "R", "G", "B" można szybko wywołać błąd i wyświetlenie komunikatu
"Niedopuszczalna wartość lub typ danych. Przepełnienie.".
Wystarczy wpisać np. w polu "R" ciąg "111111".
- wartość ujemna składowej koloru jest uzwględniana w kolorze poziomego paska w dialogu, ale nie w kolorze krawędzi w arkuszu.
Przykład: wpisanie w polu "G" ciągu "-1".
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 10:58 am
autor: Jermor
Dziękuję za słuszne uwagi. Moje niedopatrzenie i chyba pośpiech.
Przygotowałem kolejną poprawioną wersję. Zamieszczę ją w dziale "Projekty użytkowników".
Teraz wartości R, G i B są kontrolowane.
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 11:57 am
autor: cwolan
Jermor pisze:Dziękuję za słuszne uwagi.
Cała przyjemność po mojej stronie.
Drobne uzupełnienie:
- na liście stylów dla LibreOffice jedna pozycja jest po angielsku ("Fine dashed") a jedna zawiera literówkę ("Zewnetrznie")
- etykieta "Określ własne parametry krawędzi." jest przycięta od dołu
- wydaje mi się, że coś jest nie tak z akceleratorami dla formantów R,G,B (podkreślenie). "R" i "G" są podkreślone, a "B" nie.
Naciśnięcie litery "R" przesuwa fokus do kontrolki oznaczonej "G", z kolei naciśnięcie litery "G" przesuwa fokus
do kontrolki oznaczonej "B". Co daje naciśnięcie litery "B"?
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 12:54 pm
autor: Jermor
Co do nazwy "Fine dashed". Powszechnie kojarzymy "Fine" z "w porządku". Dopiero po twoim wpisie zajrzałem do słownika i tam "fine" ma także znaczenie "cienki". Zmieniłem więc ten opis na "Cienko kreskowane".
Podkreślenie liter, to niezamierzony efekt. Wiem, do czego ta możliwość służy, ale nie wiem, jak jej użyć świadomie.
Pozostałe — do zmodyfikowania.
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 2:36 pm
autor: cwolan
Jermor pisze:Co do nazwy "Fine dashed". Powszechnie kojarzymy "Fine" z "w porządku". Dopiero po twoim wpisie zajrzałem do słownika i tam "fine" ma także znaczenie "cienki". Zmieniłem więc ten opis na "Cienko kreskowane".
I słusznie. W LibreOffice (dialog "Linia") styl linii "Fine Dashed" jest tłumaczony jako "Cienko kreskowany".
Jermor pisze:Podkreślenie liter, to niezamierzony efekt. Wiem, do czego ta możliwość służy, ale nie wiem, jak jej użyć świadomie.
Temat został poruszony w artykule w OpenOffice wiki:
Label Field
"Przeniesienie" fokusu z etykiety na kontrolkę zadziała, gdy "kolejność aktywacji" kontrolki będzie o jeden większa od "kolejności aktywacji" etykiety. Tymczasem w dialogu mamy kolejność aktywacji następującą:
etykieta "R" - 18 vs formant - 17
etykieta "G" - 20 vs formant - 19
etykieta "B" - 22 vs formant - 21
co tłumaczy, dlaczego naciśnięcie litery "R" przesuwa fokus do formantu "G", a litery "G" — do formantu "B".
Załączam zmodyfikowany plik Dialog1. Zmieniłem kolejność aktywacji na prawidłową i chyba działa poprawnie.
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 3:23 pm
autor: cwolan
Załączyłem niewłaściwą wersję dialogu (nieodpowiednie nazwy kontrolek RGB powodują błąd makra).
Najmocniej przepraszam. Poniżej wersja poprawna.
Re: Krawędzi - zmiana grubości
: czw maja 26, 2022 6:27 pm
autor: Jermor
Po pierwsze dziękuję za wyjaśnienie LabelField. Źródło wyjaśniło też sposób sygnalizowania tej wyróżnionej litery.
Na razie po prostu wyłączyłem tę opcję w etykietach.
Rzeczywiście nie wiedziałem o tej możliwości i na pewno będę to wykorzystywał w przyszłości.
Dziękuję za zaangażowanie. Ostateczna wersja rozszerzenia jest teraz w dziale "Projekty użytkowników".