In welcher Einheit ist die Tabelle-Breite in Writer-Doku

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: In welcher Einheit ist die Tabelle-Breite in Writer-Doku

von tommy » Fr, 23.07.2004 15:21

Hi Stephan,
danke für den Code, das hat mir weiter geholfen.

Gruß

Tommy

von Stephan » Fr, 23.07.2004 13:31

Hallo Tommy,

Der Satzspiegel ist allgemein:

Blattbreite - (Breite rechter Rand) - (Breite linker Rand)

aber Du willst bestimmt einen Codeschnipsel :wink: :

Code: Alles auswählen

oDoc = ThisComponent 
oViewCursor = oDoc.CurrentController.getViewCursor() 

oPageStyleName = oViewCursor.PageStyleName 
oPageStyles = oDoc.StyleFamilies.getByName("PageStyles") 
oStyle  = oPageStyles.getByName(oPageStyleName) 

satzspiegel = oStyle.Width-oStyle.LeftMargin-oStyle.RightMargin

'Satzspiegel in 1/100 mm
msgbox satzspiegel

irgendwie weicht die Berechnung teilweise um 1/1000mm ab, ich hoffe das stört nicht, denn ich weiß nicht wie ich es beseitigen kann.


Gruß
Stephan

von tommy » Fr, 23.07.2004 11:47

Hi Stephan,
danke für den Vorschlag. Wie ermittelt man die Breite des Satzspiegels?

Gruß

Tommy

von Stephan » Do, 22.07.2004 20:11

Ich habe jetzt einige Werte durchprobiert und würde sagen das es sich so verhält wie ich es in meinem vorangegangenen post vermutet habe. Wenn man eine Tabelle über Einfügen>Tabelle einfügt ist diese immer real so breit wie der Satzspiegel, intern jedoch immer 115596/100. Der Wert 115596/100 ist quasi der Defaultwert für jede neue Tabelle, das sollte sich ändern lassen - nur wo?
Also wie kann man die tatsächliche Breite ermitteln, die das Makro so eine große Zahl wie oben liefert?
Ich würde meinen: Tabellenbreite ermitteln, wie von Dir vorgeschlagen und prüfen ob diese Breite größer als der Satzspiegel ist (unter Berücksichtigung 1/100 mm), wenn:
ja --> dann Tabelle so breit wie der Satzspiegel
nein --> dann Tabelle so breit wie ermittelt

Gruß
Stephan

von tommy » Do, 22.07.2004 19:27

Hi, danke für eure Antworten.
In der Tabelleneigenschaften ist die Breite 17cm angegeben. Durch Makro wird aber eine große Zahl (115596)ausgegeben. Wenn ich die Breite verkleine, dann liefert das Makro den richtigen Wert. Also wie kann man die tatsächliche Breite ermitteln, die das Makro so eine große Zahl wie oben liefert?

Gruß

Tommy

von Stephan » Do, 22.07.2004 16:41

Ich kann den Wert für das Einfügen einer "Standardtabelle" mit 115596 nachvollziehen. Den Grund sehe ich darin das die Tabellen auf Seitenbreite skalliert werden und wohl intern über diesen Breitenwert verfügen, auch wenn in den Tabelleneigenschaften für die Breite anderes angezeigt wird. Aber das ist nur meine Vermutung...
Wenn ich jedenfalls meine Tabelle manuell so skalliere da sie schmaler als der Satzspiegel ist liefert das Makro einen Wert von 8742 und meine Tabelle ist (laut Tabelleneigenschaftendialog) 87,4 mm breit.

Gruß
Stephan

von HM » Do, 22.07.2004 16:17

Hallo Tommy,

das ist allerdings ziemlich breit.
Allerdings kann ich dir keine andere Antwort bietet.
Ich zitiere aus dem Hanbuch:

"Hier die wichtigsten Eigenschaften des Tabellen-Objektes:
...
- Width (Long) - absolute Breite der Tabelle in 100stel Millimeter."

So steht es in der deutschen Übersetzung StarOffice 7 Basic-Programmierhandbuch, die ich bei Sun heruntergeladen habe.

Ich könnte mir allenfalls erklären, dass die Übersetzer einen Fehler gemacht haben, dann allerdings durchgängig, da diese 100stel mm mehr als einmal erscheinen.

Gruß

Herbert

von tommy » Do, 22.07.2004 16:06

Hi Herbert,
danke für die schnelle Antwort! Wenn die Angabe in 100stel Millimeter ist, dann ist die Tabelle 1155 Millimeter breit? Das kann doch nicht sein, oder?

Gruß

Tommy

von HM » Do, 22.07.2004 15:49

Hallo Tommy,

nach dem Basic-Programmierhandbuch von Sun wird die Tabellenbreite in 100stel Millimeter angegeben.

Gruß

Herbert

In welcher Einheit ist die Tabelle-Breite in Writer-Doku

von tommy » Do, 22.07.2004 15:00

Hallo, ich habe folgende Frage und zwar in welcher Einheit ist die Tabelle-Breite in Writer-Dokument?

Code: Alles auswählen

oEnum = oThisDoc.Text.createEnumeration
	While oEnum.hasMoreElements()
		oPara = oEnum.nextElement()	
		If goPara.supportsService("com.sun.star.text.TextTable") Then
        MsgBox oPara.Width
      End If
   Wend
Ausgabe ist 115596.
Weiss es jemand?

Gruß

Tommy

Nach oben