Clean formatting with user fields
This commit is contained in:
parent
44ded43131
commit
1137e95152
2 changed files with 355 additions and 45 deletions
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
|
||||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Clean" script:language="StarBasic">Sub mark36
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Clean" script:language="StarBasic">Sub mark37
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -624,7 +624,7 @@ Private Sub cleanFormatting
|
||||||
'Не должно быть пустых абзацев
|
'Не должно быть пустых абзацев
|
||||||
AskAndReplace("^$","")
|
AskAndReplace("^$","")
|
||||||
|
|
||||||
convertFormattingToText()
|
convertFormattingToUserFields
|
||||||
|
|
||||||
convertFontsToCharStyles()
|
convertFontsToCharStyles()
|
||||||
|
|
||||||
|
@ -632,7 +632,7 @@ Private Sub cleanFormatting
|
||||||
|
|
||||||
removeDirectFormatting()
|
removeDirectFormatting()
|
||||||
|
|
||||||
convertFormattingFromText()
|
convertUserFieldsToFormatting
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -1128,48 +1128,7 @@ Private Sub fromTextSparce
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Private Sub convertFormattingToText
|
|
||||||
Dim version As String
|
|
||||||
Dim smallNum As String
|
|
||||||
Dim bigNum As String
|
|
||||||
version = Trim(getVersion())
|
|
||||||
bigNum = Left(version, 1)
|
|
||||||
smallNum = Right(version, 1)
|
|
||||||
toTextBold()
|
|
||||||
toTextItalic()
|
|
||||||
toTextStrikeout()
|
|
||||||
toTextUnderline()
|
|
||||||
If CInt(bigNum) < 6 OR (CInt(bigNum) = 6 AND CInt(smallNum < 3) ) Then
|
|
||||||
toTextSuperscriptOld()
|
|
||||||
toTextSubscriptOld()
|
|
||||||
Else
|
|
||||||
toTextSuperscript()
|
|
||||||
toTextSubscript()
|
|
||||||
EndIf
|
|
||||||
toTextSparce()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Sub convertFormattingFromText
|
|
||||||
Dim version As String
|
|
||||||
version = Trim(getVersion())
|
|
||||||
Dim smallNum As String
|
|
||||||
Dim bigNum As String
|
|
||||||
version = Trim(getVersion())
|
|
||||||
bigNum = Left(version, 1)
|
|
||||||
smallNum = Right(version, 1)
|
|
||||||
fromTextSparce()
|
|
||||||
If CInt(bigNum) < 6 OR (CInt(bigNum) = 6 AND CInt(smallNum < 3) ) Then
|
|
||||||
fromTextSuperscriptOld()
|
|
||||||
fromTextSubscriptOld()
|
|
||||||
Else
|
|
||||||
fromTextSuperscript()
|
|
||||||
fromTextSubscript()
|
|
||||||
EndIf
|
|
||||||
fromTextUnderline()
|
|
||||||
fromTextStrikeout()
|
|
||||||
fromTextItalic()
|
|
||||||
fromTextBold()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Function confirm(description) As Boolean
|
Private Function confirm(description) As Boolean
|
||||||
If MsgBox (description, 4) =6 Then
|
If MsgBox (description, 4) =6 Then
|
||||||
|
@ -1328,4 +1287,355 @@ Function getVersion As String
|
||||||
getVersion=oProduct.getByName("ooSetupVersion")
|
getVersion=oProduct.getByName("ooSetupVersion")
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub convertFormatToUserFields(identifier As String, styleNames, styleValues)
|
||||||
|
Dim leftField As String
|
||||||
|
Dim rightField As String
|
||||||
|
Dim i As Integer
|
||||||
|
leftField = "left" & identifier
|
||||||
|
rightField = "right" & identifier
|
||||||
|
Dim SrchAttributes(Ubound(styleNames)) as new com.sun.star.beans.PropertyValue
|
||||||
|
For i = Lbound(styleNames) To Ubound(styleNames)
|
||||||
|
SrchAttributes(i).Name = styleNames(i)
|
||||||
|
Next i
|
||||||
|
For i = Lbound(styleValues) To Ubound(styleValues)
|
||||||
|
SrchAttributes(i).Value = styleValues(i)
|
||||||
|
Next i
|
||||||
|
SDesc = Thiscomponent.createSearchDescriptor()
|
||||||
|
SDesc.SearchAll = true
|
||||||
|
SDesc.SearchRegularExpression = true
|
||||||
|
SDesc.SearchString = ""
|
||||||
|
SDesc.searchStyles = false
|
||||||
|
SDesc.SetSearchAttributes(SrchAttributes)
|
||||||
|
found = Thiscomponent.findFirst(SDesc)
|
||||||
|
i = 0
|
||||||
|
Do While not isNull(found)
|
||||||
|
If Len(found.String) <> 0 Then
|
||||||
|
insertUserField(found.End,rightField & i,"")
|
||||||
|
insertUserField(found.start,leftField & i,"")
|
||||||
|
EndIf
|
||||||
|
found = Thiscomponent.findNext(found.End, SDesc)
|
||||||
|
i = i + 1
|
||||||
|
Loop
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub convertUserFieldsToFormat(identifier As String, styleNames , styleValues)
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
Dim oMasters As Object
|
||||||
|
Dim endTextRange As Object
|
||||||
|
Dim leftFieldName As String
|
||||||
|
Dim rightFieldName As String
|
||||||
|
Dim leftFieldMaster As Object
|
||||||
|
Dim rightFieldMaster As Object
|
||||||
|
Dim leftField As Object
|
||||||
|
Dim rightField As Object
|
||||||
|
Dim leftAnchor As Object
|
||||||
|
Dim rightAnchor As Object
|
||||||
|
Dim i As Integer
|
||||||
|
oMasters = ThisComponent.getTextFieldMasters()
|
||||||
|
i = 0
|
||||||
|
Do
|
||||||
|
leftFieldName = "com.sun.star.text.FieldMaster.User" & "." & "left" & identifier & i
|
||||||
|
rightFieldName = "com.sun.star.text.FieldMaster.User" & "." & "right" & identifier & i
|
||||||
|
If oMasters.hasByName(leftFieldName) AND oMasters.hasByName(rightFieldName) Then
|
||||||
|
leftFieldMaster = oMasters.getByName(leftFieldName)
|
||||||
|
leftField = leftFieldMaster.DependentTextFields(0)
|
||||||
|
leftAnchor = leftField.getAnchor()
|
||||||
|
rightFieldMaster = oMasters.getByName(rightFieldName)
|
||||||
|
rightField = rightFieldMaster.DependentTextFields(0)
|
||||||
|
rightAnchor = rightField.getAnchor()
|
||||||
|
oTextCursor = leftAnchor.Text.createTextCursor()
|
||||||
|
oTextCursor.goToRange(leftAnchor.Start, false)
|
||||||
|
oTextCursor.goToRange(rightAnchor.End, true)
|
||||||
|
oTextCursor.setPropertyValues(styleNames, styleValues)
|
||||||
|
leftField.dispose()
|
||||||
|
leftFieldMaster.dispose()
|
||||||
|
rightField.dispose()
|
||||||
|
rightFieldMaster.dispose()
|
||||||
|
i=i+1
|
||||||
|
Else
|
||||||
|
Exit sub
|
||||||
|
EndIf
|
||||||
|
Loop
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsBold
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharWeight")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontWeight.BOLD)
|
||||||
|
convertFormatToUserFields("Bold", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatBold
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharWeight")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontWeight.BOLD)
|
||||||
|
convertUserFieldsToFormat("Bold", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsItalic
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharPosture")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontSlant.ITALIC)
|
||||||
|
convertFormatToUserFields("Italic", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatItalic
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharPosture")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontSlant.ITALIC)
|
||||||
|
convertUserFieldsToFormat("Italic", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsStrikeout
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharStrikeout")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontStrikeout.SINGLE)
|
||||||
|
convertFormatToUserFields("StrikeOut", styleNames, styleValues)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatStrikeout
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharStrikeout")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontStrikeout.SINGLE)
|
||||||
|
convertUserFieldsToFormat("StrikeOut", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsUnderline
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharUnderline")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontUnderline.SINGLE)
|
||||||
|
convertFormatToUserFields("UnderLine", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatUnderline
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharUnderline")
|
||||||
|
styleValues = Array(com.sun.star.awt.FontUnderline.SINGLE)
|
||||||
|
convertUserFieldsToFormat("UnderLine", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsSuperscript
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,14000)
|
||||||
|
convertFormatToUserFields("SuperScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatSuperscript
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,14000)
|
||||||
|
convertUserFieldsToFormat("SuperScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsSubscript
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,-14000)
|
||||||
|
convertFormatToUserFields("SubScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatSubscript
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,-14000)
|
||||||
|
convertUserFieldsToFormat("SubScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsSuperscriptOld
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,101)
|
||||||
|
convertFormatToUserFields("SuperScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatSuperscriptOld
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,101)
|
||||||
|
convertUserFieldsToFormat("SuperScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsSubscriptOld
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,-101)
|
||||||
|
convertFormatToUserFields("SubScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatSubscriptOld
|
||||||
|
Dim styleValues(1) As Integer
|
||||||
|
Dim styleNames(1) As String
|
||||||
|
styleNames = Array("CharEscapementHeight","CharEscapement")
|
||||||
|
styleValues = Array(58,-101)
|
||||||
|
convertUserFieldsToFormat("SubScript", styleNames, styleValues)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub formatToUserFieldsSparce
|
||||||
|
Dim i As Integer
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharKerning")
|
||||||
|
i = 18
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertFormatToUserFields(i & "Kerning" , styleNames, styleValues)
|
||||||
|
i = 35
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertFormatToUserFields(i & "Kerning" , styleNames, styleValues)
|
||||||
|
i = 53
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertFormatToUserFields(i & "Kerning" , styleNames, styleValues)
|
||||||
|
i = 70
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertFormatToUserFields(i & "Kerning" , styleNames, styleValues)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub userFieldsToFormatSparce
|
||||||
|
Dim i As Integer
|
||||||
|
Dim styleValues(0) As Integer
|
||||||
|
Dim styleNames(0) As String
|
||||||
|
styleNames = Array("CharKerning")
|
||||||
|
i = 18
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertUserFieldsToFormat(i & "Kerning", styleNames, styleValues)
|
||||||
|
i = 35
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertUserFieldsToFormat(i & "Kerning", styleNames, styleValues)
|
||||||
|
i = 53
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertUserFieldsToFormat(i & "Kerning", styleNames, styleValues)
|
||||||
|
i = 70
|
||||||
|
styleValues = Array(i)
|
||||||
|
convertUserFieldsToFormat(i & "Kerning", styleNames, styleValues)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub convertFormattingToText
|
||||||
|
Dim version As String
|
||||||
|
Dim smallNum As String
|
||||||
|
Dim bigNum As String
|
||||||
|
version = Trim(getVersion())
|
||||||
|
bigNum = Left(version, 1)
|
||||||
|
smallNum = Right(version, 1)
|
||||||
|
toTextBold()
|
||||||
|
toTextItalic()
|
||||||
|
toTextStrikeout()
|
||||||
|
toTextUnderline()
|
||||||
|
If CInt(bigNum) < 6 OR (CInt(bigNum) = 6 AND CInt(smallNum < 3) ) Then
|
||||||
|
toTextSuperscriptOld()
|
||||||
|
toTextSubscriptOld()
|
||||||
|
Else
|
||||||
|
toTextSuperscript()
|
||||||
|
toTextSubscript()
|
||||||
|
EndIf
|
||||||
|
toTextSparce()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub convertFormattingToUserFields
|
||||||
|
Dim version As String
|
||||||
|
Dim smallNum As String
|
||||||
|
Dim bigNum As String
|
||||||
|
version = Trim(getVersion())
|
||||||
|
bigNum = Left(version, 1)
|
||||||
|
smallNum = Right(version, 1)
|
||||||
|
formatToUserFieldsBold
|
||||||
|
formatToUserFieldsItalic
|
||||||
|
formatToUserFieldsStrikeout
|
||||||
|
formatToUserFieldsUnderline
|
||||||
|
|
||||||
|
If CInt(bigNum) < 6 OR (CInt(bigNum) = 6 AND CInt(smallNum < 3) ) Then
|
||||||
|
formatToUserFieldsSuperscriptOld
|
||||||
|
formatToUserFieldsSubscriptOld
|
||||||
|
Else
|
||||||
|
formatToUserFieldsSuperscript
|
||||||
|
formatToUserFieldsSubscript
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
formatToUserFieldsSparce
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub convertFormattingFromText
|
||||||
|
Dim version As String
|
||||||
|
version = Trim(getVersion())
|
||||||
|
Dim smallNum As String
|
||||||
|
Dim bigNum As String
|
||||||
|
version = Trim(getVersion())
|
||||||
|
bigNum = Left(version, 1)
|
||||||
|
smallNum = Right(version, 1)
|
||||||
|
fromTextSparce()
|
||||||
|
If CInt(bigNum) < 6 OR (CInt(bigNum) = 6 AND CInt(smallNum < 3) ) Then
|
||||||
|
fromTextSuperscriptOld()
|
||||||
|
fromTextSubscriptOld()
|
||||||
|
Else
|
||||||
|
fromTextSuperscript()
|
||||||
|
fromTextSubscript()
|
||||||
|
EndIf
|
||||||
|
fromTextUnderline()
|
||||||
|
fromTextStrikeout()
|
||||||
|
fromTextItalic()
|
||||||
|
fromTextBold()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub convertUserFieldsToFormatting
|
||||||
|
Dim version As String
|
||||||
|
version = Trim(getVersion())
|
||||||
|
Dim smallNum As String
|
||||||
|
Dim bigNum As String
|
||||||
|
version = Trim(getVersion())
|
||||||
|
bigNum = Left(version, 1)
|
||||||
|
smallNum = Right(version, 1)
|
||||||
|
userFieldsToFormatSparce
|
||||||
|
|
||||||
|
If CInt(bigNum) < 6 OR (CInt(bigNum) = 6 AND CInt(smallNum < 3) ) Then
|
||||||
|
userFieldsToFormatSuperscriptOld
|
||||||
|
userFieldsToFormatSubscriptOld
|
||||||
|
Else
|
||||||
|
userFieldsToFormatSuperscript
|
||||||
|
userFieldsToFormatSubscript
|
||||||
|
EndIf
|
||||||
|
userFieldsToFormatUnderline
|
||||||
|
userFieldsToFormatStrikeout
|
||||||
|
userFieldsToFormatItalic
|
||||||
|
userFieldsToFormatBold
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function insertUserField(cursor As Object,fieldName As String,fieldValue As String)
|
||||||
|
Dim oField As Object 'Field to insert
|
||||||
|
Dim oFieldMaster As Object
|
||||||
|
Dim oMasters As Object
|
||||||
|
oField = ThisComponent.createInstance("com.sun.star.text.textfield.User")
|
||||||
|
oMasters = ThisComponent.getTextFieldMasters()
|
||||||
|
If oMasters.hasByName("com.sun.star.text.FieldMaster.User" & "." & fieldName) Then
|
||||||
|
oFieldMaster = oMasters.getByName("com.sun.star.text.FieldMaster.User" & "." & fieldName)
|
||||||
|
oFieldMaster.Name = fieldName
|
||||||
|
oFieldMaster.Content = fieldValue
|
||||||
|
Else
|
||||||
|
oFieldMaster = ThisComponent.createInstance("com.sun.star.text.FieldMaster.User")
|
||||||
|
oFieldMaster.Name = fieldName
|
||||||
|
oFieldMaster.Content = fieldValue
|
||||||
|
EndIf
|
||||||
|
oField.attachTextFieldMaster(oFieldMaster)
|
||||||
|
cursor.Text.insertTextContent(cursor, oField, False)
|
||||||
|
oField.IsVisible = false
|
||||||
|
End Function
|
||||||
</script:module>
|
</script:module>
|
|
@ -3,7 +3,7 @@
|
||||||
xmlns:dep="http://openoffice.org/extensions/description/2006"
|
xmlns:dep="http://openoffice.org/extensions/description/2006"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<identifier value="pro.litvinovg.Redaction" />
|
<identifier value="pro.litvinovg.Redaction" />
|
||||||
<version value="0.5.11" />
|
<version value="0.6.0" />
|
||||||
<platform value="all" />
|
<platform value="all" />
|
||||||
<display-name>
|
<display-name>
|
||||||
<name lang="en">Cleaning and validation documents for publishing in html and epub with pagination</name>
|
<name lang="en">Cleaning and validation documents for publishing in html and epub with pagination</name>
|
||||||
|
|
Loading…
Add table
Reference in a new issue