Seite 1 von 2
Writer: Text in anderer Schriftart doppeln
Verfasst: Mi 13. Mär 2024, 16:30
von Ich Bins
Hallo zusammen,
in einem Writer-Dokument mit zwei Tabellenspalten und einer Zeile möchte ich in der linken Spalte einen Text z.B. mit der Schriftart Arial schreiben.
In der rechten Spalte soll parallel beim Schreiben der Text in einer anderen Schriftart erzeugt werden.

- Schriftarten.JPG (63.55 KiB) 2852 mal betrachtet
Kann man das mit Basic realisieren?
Viele Grüße
Ich Bins
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Mi 13. Mär 2024, 17:22
von miesepeter
Ich Bins hat geschrieben: ↑Mi 13. Mär 2024, 16:30
Kann man das mit Basic realisieren?
Weiß ich nicht. Mit dem Einsatz von Bereichen und Synchronisieren würde ich's versuchen. Beispieldatei anbei. - Ciao
.
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Do 14. Mär 2024, 08:32
von Ich Bins
Hallo miesepeter,
vielen Dank für Deinen Lösungsvorschlag und die Beispieldatei.
Deinen Vorschlag könnte ich gut nutzen, wenn ich auf der rechten Seite dauerhaft eine andere Schriftart einstellen könnte.
Viele Grüße
Ich Bins
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Do 14. Mär 2024, 08:59
von miesepeter
Ich Bins hat geschrieben: ↑Do 14. Mär 2024, 08:32
Deinen Vorschlag könnte ich gut nutzen, wenn ich auf der rechten Seite
dauerhaft eine andere Schriftart einstellen könnte.
Das geht halt prinzipiell nicht. Du kannst jedoch immer die rechte Spalte der Tabelle markieren und einfach die bestehende Absatzvorlage anwenden (Doppelklick). Ansonsten: Vielleicht schreibt dir ein Spezialist ein Makro dazu. Jedenfalls: Viel Erfolg!
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Do 14. Mär 2024, 15:12
von karolus
Kann man das mit Basic realisieren?
Bestimmt!
von mir gibts aber nur python:
Code: Alles auswählen
def sync_A1_B1(*_):
doc = XSCRIPTCONTEXT.getDocument()
table = doc.TextTables.Tabelle1
input = table.getCellByName("A1").Text.String
output = table.getCellByName("B1").Text
output.String = input.replace('\n','\r').strip()
for para in output.Text:
para.ParaStyleName = "schreibschrift"
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Sa 16. Mär 2024, 17:29
von Ich Bins
Vielen Dank.
miesepeter hat geschrieben: ↑Do 14. Mär 2024, 08:59
Du kannst jedoch immer die rechte Spalte der Tabelle markieren und einfach die bestehende Absatzvorlage anwenden (Doppelklick).
Konnte ich leider nicht nachvollziehen. Ist aber vorerst zurückgestellt weil ich auf
"wackligen Beinen meine ersten Gehversuche" mit Python mache.
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Sa 16. Mär 2024, 17:53
von Ich Bins
Hallo karolus,
mein erstes in Notepad++ abgetipptes Python-Makro "Summe_Calc.py"
Code: Alles auswählen
# coding: utf-8
from __future__ import unicode_literals
# 1) Werte aus dem Arbeitsblatt holen.
desktop = XSCRIPTCONTEXT.getDesktop()
model = desktop.getCurrentComponent()
sheet = model.CurrentController.ActiveSheet
range = sheet.getCellRangeByName("A1:A3")
# 2) Einige Werte.
sum = 0
for row in range.Rows:
sum += row.getCellByPosition(0,0).Value
# 3) Das Ergebnis an das Arbeisblatt übergeben.
sheet.getCellRangeByName("B3").Value = sum
# useful for debug
from apso_utils import msgbox
msgbox('done')
das unter
C:\Users\IchBins\AppData\Roaming\LibreOffice\4\user\Scripts\python
gespeichert ist kann ich mit dem APSO Python-Interpreter ausführen.

- erfolgreich.JPG (21.34 KiB) 2744 mal betrachtet
Versuche ich selbiges mit Deinem Code "von_karolus.py" öffnet sich die APSO console ohne eine weitere sichtbare Aktion.
Ich gehe davon aus, dass Dein Code für meinen Anwendungsfall in Writer gedacht war.
Würdest Du mir bitte die richige Vorgehensweise für Deinen Code verklickern?
Viele Grüße
Ich Bins
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Sa 16. Mär 2024, 21:06
von karolus
Wie zum Teufel schaffst du den Slalom VORBEI am Offensichtlichen?
Die python-funktion ist gebunden ans Ereigniss: »Dokument Speichern«
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: Sa 16. Mär 2024, 22:27
von karolus
Hallo
@summe_calc.py:
Ich frage mich woher diese seltsamen Beispiele kommen, das ganze ist ein Dreizeiler
in der Konsole
Code: Alles auswählen
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.CurrentController.ActiveSheet
sheet["B6"].Value = sum( sum(x for x in row if isinstance(x, float))
for row in sheet["A1:D3"].DataArray ))
Re: Writer: Text in anderer Schriftart doppeln
Verfasst: So 17. Mär 2024, 10:42
von miesepeter
Hallo,
die Installation von APSO.oxt endete bei mir mit einem Aufhänger; LibreOffice ließ sich danach nicht mehr starten. Erst ein Computerneustart brachte Abhilfe (und ja, APSO war dann bei den Extensionen verzeichnet)...
Ich habe noch einmal meine grauen Zellen beschäftigt und kam auf eine Lösung des Problems mit Hilfe von DDE -
DDE im selben Dokument. Alles ohne spezielles Makro. Beispieldatei (mit
Anleitung innerhalb) und Screenshot anbei. Es läuft nicht ganz so gut wie @karolus' Makro.
@karolus: Deine Version (Makro) arbeitete gut! Chapeau!
.

- DDE_Einfuegen_UpdateAll.png (37.28 KiB) 2706 mal betrachtet
.