von manese » Fr, 22.10.2010 15:09
Hallo Christopher,
ein Makro, dass „ahnt“, wo ein echter Absatz ist und wo nur die Zeile zu Ende war, lässt sich zur Zeit wahrscheinlich noch nicht finden. Ich kann dir aber zwei Zwischenlösungen anbieten.
Bei der ersten Lösung werden alle Zeilenumbrüche durch Leerzeichen ersetzt, aber doppelte Zeilenumbrüche bleiben als einfacher Zeilenumbruch erhalten. Dieses Makro setze ich gerne bei der Übernahme vom eMails ein. Du müsstest nur gegebenenfalls die echten Zeilenumbrüche vor der Anwendung durch doppelte Zeilenumbrüche markieren.
Code: Alles auswählen
sub PDFzuOpenOffice
Dim oDoc as object
oDoc = ThisComponent
''''Die Suche- und Ersetze-Funktion aktivieren
Dim oSuche as object
oSuche = oDoc.createReplaceDescriptor()
''''Einen Dummy (§§§) für echte Absätze generieren
With oSuche
.setSearchString("^$")
.setReplaceString("§§§")
.searchRegularExpression = True
End With
oDoc.replaceAll(oSuche)
''''Absatzenden durch Leerzeichen ersetzen
With oSuche
.setSearchString("$")
.setReplaceString(" ")
.searchRegularExpression = True
End With
oDoc.replaceAll(oSuche)
''''Dummys durch Zeilenumbrüche ersetzen
With oSuche
.setSearchString("§§§")
.setReplaceString("\n")
.searchRegularExpression = True
End With
oDoc.replaceAll(oSuche)
end sub
Bei der zweiten Lösung legst du dir das Makro auf eine Tastenkombination. Es bewirkt, dass zwei irrtümlich getrennte Absätze wieder zusammengeführt werden.
Code: Alles auswählen
Sub KolongrenzeAufheben
Dim oDoc as Object : oDoc = ThisComponent
Dim oViewC as Object : oViewC = oDoc.getCurrentController().getViewCursor()
Dim oTextC as Object : oTextC = oDoc.Text.createTextCursorByRange(oViewC)
oTextC.goToEndOfParagraph(False) : oTextC.goRight(1, True)
oTextC.setString(" ", True)
End Sub
Alles Gute
matthias
Hallo Christopher,
ein Makro, dass „ahnt“, wo ein echter Absatz ist und wo nur die Zeile zu Ende war, lässt sich zur Zeit wahrscheinlich noch nicht finden. Ich kann dir aber zwei Zwischenlösungen anbieten.
Bei der ersten Lösung werden alle Zeilenumbrüche durch Leerzeichen ersetzt, aber doppelte Zeilenumbrüche bleiben als einfacher Zeilenumbruch erhalten. Dieses Makro setze ich gerne bei der Übernahme vom eMails ein. Du müsstest nur gegebenenfalls die echten Zeilenumbrüche vor der Anwendung durch doppelte Zeilenumbrüche markieren.
[code]sub PDFzuOpenOffice
Dim oDoc as object
oDoc = ThisComponent
''''Die Suche- und Ersetze-Funktion aktivieren
Dim oSuche as object
oSuche = oDoc.createReplaceDescriptor()
''''Einen Dummy (§§§) für echte Absätze generieren
With oSuche
.setSearchString("^$")
.setReplaceString("§§§")
.searchRegularExpression = True
End With
oDoc.replaceAll(oSuche)
''''Absatzenden durch Leerzeichen ersetzen
With oSuche
.setSearchString("$")
.setReplaceString(" ")
.searchRegularExpression = True
End With
oDoc.replaceAll(oSuche)
''''Dummys durch Zeilenumbrüche ersetzen
With oSuche
.setSearchString("§§§")
.setReplaceString("\n")
.searchRegularExpression = True
End With
oDoc.replaceAll(oSuche)
end sub[/code]
Bei der zweiten Lösung legst du dir das Makro auf eine Tastenkombination. Es bewirkt, dass zwei irrtümlich getrennte Absätze wieder zusammengeführt werden.
[code]Sub KolongrenzeAufheben
Dim oDoc as Object : oDoc = ThisComponent
Dim oViewC as Object : oViewC = oDoc.getCurrentController().getViewCursor()
Dim oTextC as Object : oTextC = oDoc.Text.createTextCursorByRange(oViewC)
oTextC.goToEndOfParagraph(False) : oTextC.goRight(1, True)
oTextC.setString(" ", True)
End Sub[/code]
Alles Gute
matthias