Cześć,
Borykam się z takim problemem. Mam duży dokument tekstowy. Chciałbym zmienić w nim poszczególne znaki tak, aby każdy z nich był zapisany losową czcionką (z listy 4), rozmiar i formatowanie (pogrubienie, pochylenie, przekreślenia) byłyby takie same. Żeby zobrazować mój problem, załóżmy, że A to dowolny znak zapisany czcionką numer 1, B to dowolny znak zapisany czcionką numer 2, C to dowolny znak zapisany czcionką numer 3, D to dowolny znak zapisany czcionką numer 4. Tak więc chciałbym, aby z "AAAAAAAAAA..." zrobić np. "DCBDAABDCD...".
- cykliczność, czyli zamiast losowego przypisywania czcionki, czcionka zmieniałaby się cyklicznie, tzn. "AAAAAAAAAA..." zmieniło by się na "ABCDABCDAB..."
- zamiast zmieniać pojedyncze znaki, zmieniać całe wyrazy, tzn. "AAA A AAAA AA..." zmienić na "AAA B CCCC DD..."
Niestety do tej pory użytkowałem OpenOffica do bardzo prostych rzeczy, tak więc nie znam jego zaawansowanych funkcji. Będę bardzo wdzięczny za pomoc.
[SOLVED] Losowa czcionka w dokumencie
[SOLVED] Losowa czcionka w dokumencie
Ostatnio zmieniony wt sty 24, 2023 6:58 pm przez Biedronas, łącznie zmieniany 1 raz.
Libre Office 7.4.3.2 na Windows 10
Re: Losowa czcionka w dokumencie
Nie zrobisz tego standardowymi opcjami i możliwościami Writera.
Trzeba napisać makro.
Trzeba napisać makro.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Losowa czcionka w dokumencie
Z pomocą internetu udało mi się zrobić takie makra:
Wygląda na to, że działa
Kod: Zaznacz cały
import random
import string
def change_font_sequence():
# changing font in sequence: AAAAAAAAA... -> ABCDABCDA...
letter_fonts = ["Arial", "Tempus Sans ITC", "High Tower Text", "Courier New" ]
letter_index = 0
document = XSCRIPTCONTEXT.getDocument()
viewCursor = document.getCurrentController().getViewCursor()
viewCursor.gotoStart(False)
viewCursor.collapseToEnd()
while viewCursor.goRight(1, True):
letter = viewCursor.getString()
viewCursor.CharFontName = letter_fonts[letter_index]
letter_index = (letter_index + 1)%4
viewCursor.goRight(0, False) # deselect
viewCursor.collapseToEnd()
def change_font_random():
# changing font randomly: AAAAAAAAA... -> ACBDBCADB...
letter_fonts = ["Arial", "Tempus Sans ITC", "High Tower Text", "Courier New" ]
document = XSCRIPTCONTEXT.getDocument()
viewCursor = document.getCurrentController().getViewCursor()
viewCursor.gotoStart(False)
viewCursor.collapseToEnd()
while viewCursor.goRight(1, True):
letter = viewCursor.getString()
viewCursor.CharFontName = random.choice(letter_fonts)
viewCursor.goRight(0, False) # deselect
viewCursor.collapseToEnd()
Libre Office 7.4.3.2 na Windows 10
Re: [SOLVED] Losowa czcionka w dokumencie
Wygląda sensownie; nie testowałem.
Jest to nieliczny acz chwalebny przypadek spontaniczniego (tj. nie motywowanego misją oświeceniową) użycia Pythona jako języka do tworzenia makr na naszym forum.
Python jest nowocześniejszy od Basica, ładniejszy jako język i łatwiejszy do zrozumienia. Niestety, zarządzanie kodem makr napisanych w Pythonie jest w Open/LibreOffice trudniejsze wskutek braku zintegrowanego środowiska uruchomieniowego.
Jest to nieliczny acz chwalebny przypadek spontaniczniego (tj. nie motywowanego misją oświeceniową) użycia Pythona jako języka do tworzenia makr na naszym forum.
Python jest nowocześniejszy od Basica, ładniejszy jako język i łatwiejszy do zrozumienia. Niestety, zarządzanie kodem makr napisanych w Pythonie jest w Open/LibreOffice trudniejsze wskutek braku zintegrowanego środowiska uruchomieniowego.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)