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

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

tommy
***
Beiträge: 59
Registriert: Fr, 16.04.2004 15:00
Wohnort: Aachen

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

Beitrag von tommy »

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
HM
**
Beiträge: 22
Registriert: Mi, 23.06.2004 20:49
Wohnort: bei München

Beitrag von HM »

Hallo Tommy,

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

Gruß

Herbert
tommy
***
Beiträge: 59
Registriert: Fr, 16.04.2004 15:00
Wohnort: Aachen

Beitrag von tommy »

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
HM
**
Beiträge: 22
Registriert: Mi, 23.06.2004 20:49
Wohnort: bei München

Beitrag von HM »

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
Zuletzt geändert von HM am Do, 22.07.2004 16:58, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

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
tommy
***
Beiträge: 59
Registriert: Fr, 16.04.2004 15:00
Wohnort: Aachen

Beitrag von tommy »

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
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

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
tommy
***
Beiträge: 59
Registriert: Fr, 16.04.2004 15:00
Wohnort: Aachen

Beitrag von tommy »

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

Gruß

Tommy
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

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
tommy
***
Beiträge: 59
Registriert: Fr, 16.04.2004 15:00
Wohnort: Aachen

Beitrag von tommy »

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

Gruß

Tommy
Antworten