Hallo Kai-Martin,
erstmal danke für Deine Antwort.
Kai-Martin Knaak schrieb:
> On Mon, 01 Oct 2007 03:07:24 +0200, MrWeb wrote:
>
> Das liegt daran, dass die Software-Komponente, die die Hauptarbeit
der > Formatierung übernimmt, zusätzliche Spaces zwischen Wörtern >
> ignorieren.
> Das ist auch sinnvoll, denn die Ausgabe erfolgt in
> Proportional-Schrift. Dabei hat jeder Buchstabe eine unterschiedliche
> Breite und der Platz zwischen den Wörtern wird so angeglichen, dass
> beispielsweise beim Blocksatz alle Zeilen gleich lang sind.
Also, da bin ich mal absolut NICHT Deiner Mainung, zusem ist diese
Aussage auch nicht korrekt!
Ich hab mich nun halt doch selbst durch den Quellcode gequält um diesem
Bug auf die Spur zu kommen. Es ist so, daß lx-office daran NICHT schuld
ist! Es übergibt ganz sauber alle Leerzeichen an die generierte odt
Datei weiter. Hier liegt nun auch das Problem. OpenOffice speichert
aufeinanderfolgende Leerzeichen in einem speziellen xml Tag.
Sobald mehr als ein Leerzeichen aufeinanderfolgen, wird dies durch
' <text:s text:c="X"/>' ersetzt. Wobai das X für die Anzahl der
Leerzeichen steht. Auch hier noch mal unterschiedlich, ob es ein Block-
anfang ist, oder nur nach einem Zeilenwechsel. Beim Zeilenwechsel, sowie
auch mitten im Text, wird das erste Leerzeichen, welches auch im xml
verbleibt mitgezählt und nur die Anzahl der zusätzlichen Leerzeichen im
Tag eingetragen. Ist es ein Blockanfang (also kein vorangegangener
<text:line-break/> wird bei führenden Leerzeichen das verbleibende nicht
mit gezählt. Somit ist die Implementierung einer Ersetzungsroutine doch
etwas aufwändiger.
Aber ich habe das nun erledigt. Eine Kleine Routine die im Parser sub
einmalig aufgerufen wird (Bevor der content in das Zip der ODT
geschrieben wird) prüft nun alle möglichkeiten und ersetzt eventuell
vorhandene Leerzeichen passend mit dem Tag, wenn es mehr als ein
aufeinanderfolgendes ist.
Nun ist die Formatierung mit Leerzeichen, wie in jedem Textdokument
üblich, möglich.
> Nein. Es ist auch nicht sinnvoll, Formatierung mit Leerzeichen zu
> erschleichen. Das beißt sich mit dem auf Markup basierenden Layout der
> Ausgabe-Maschinerie. (siehe auch http://de.wikipedia.org/wiki/Markup)
>
In jeder Textverarbeitung ist dies übrigens ganz normal! Soll heißen,
wenn der Anwender irgendwo zwei Leerzeichen will, werden diese auch
so ausgegeben. Da spielt es auch keine Rolle, daß es Proportional-
Schriften sind, oder im Blocksatz gearbeitet wird. Man kann auch im
Blocksatz mehrere Leerzeichen einfügen, sieht doof aus, klar, aber es
ist problemlos möglich !
Wenn ich nun in einer Rechnung eine Dienstleistung als Position habe,
die zum Beispiel so aussieht :
Panda Internet Security 2007 (OEM)
- Antivirenschutz Software Komplettpaket Schützt Ihren PC vor Viren,
Trojanern und anderen unerwünschten Ergeinissen
- inkl. 1 Jahr Onlineupdates der Virendatenbank durch Pandasoftware
Dann soll diese auch so aussehen, und nicht wie normal unter LX-Office :
Panda Internet Security 2007 (OEM)
- Antivirenschutz Software Komplettpaket Schützt Ihren PC vor Viren,
Trojanern und anderen unerwünschten Ergeinissen
- inkl. 1 Jahr Onlineupdates der Virendatenbank durch Pandasoftware
Ist doch wohl ein Unterschied, und somit die Leerzeichen am Anfang
absolut sinnvoll, oder bist Du da anderer Meinung ?
Für diejenigen, die das interessiert, im Anhang ist die geänderte
Template.pm. Einfach diese über die alte kopieren. Besser aber, vorher
noch eine Sicherungskopie der Datei anlegen.
Darin kann man nach 'AttNet' suchen, und findet
1. eine neue sub prepareContentSpaces()
und
2. Den Aufruf der Sub prepareContentSpaces()
Mit der neuen Datei, gibt es mit Leerzeichen keine Probleme mehr.
Bitte den Programmierstil der Sub nicht anmeckern. Ich hab schon ne
ganze Weile kein Perl mehr programmiert. Dauert immer ne Weile, bis
man wieder drinnen ist. Ich programmiere normal C/C++ und dann ist
das immer eine riesige Umgewöhnung.
Mir ging es jetzt nur mal um Funktionalität, statt um Schönheit.
Wenn jemand Probleme damit haben sollte, bitte mal melden.
> Wenn überhaupt, dann müsste man Sonderwünsche in der Formatierung als
> eingestreutes Latex-, oder ODT-Befehle realisieren. Keine Ahnung, ob
> es im Moment dafür Möglichkeiten gibt. Es wäre auf jeden Fall ein
> schönes Feature.
>
Wie oben beschrieben, ist das möglich, aber natürlich nur durch
Erweitern der Perlprogrammierung von LX-Office. Wie gesagt, die
Möglichkeit gibt es jetzt.
>
> ---<(kaimartin)>---
> PS: Da Du gerade Leerzeichen ansprichst --- Du plenkst.
> http://de.wikipedia.org/wiki/Plenken
Und das is jetzt Dein Ernst ???
Außer vor den ? oder ! Zeichen, war doch alles korrekt und wenn Du damit
ein Problem hast, kann ich Dir wirklich nicht helfen ....
Machne haben Probleme, oh man ...
Gruß
Torsten
Alias MrWeb
|