Added check for headings in tables

This commit is contained in:
Georgy Litvinov 2020-07-06 11:39:01 +02:00
parent 15a5bd6f0d
commit e5244b8259
6 changed files with 104 additions and 6 deletions

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Configuration" script:language="StarBasic" script:moduleType="normal">Public Const redactionExtensionName As String = &quot;cleanAndValidate&quot;
Public Const redactionExtensionVersion = &quot;0.8.4&quot;
Public Const redactionExtensionVersion = &quot;0.8.5&quot;
Function initRedactionConfiguration()
On Error Goto exceptionHandler
Dim regFactory As Object

View file

@ -230,6 +230,9 @@ Function getRussian(identifier As String) As String
Case &quot;inPageStyle&quot;
getRussian = &quot;стиля страниц&quot;
Exit Function
Case &quot;table&quot;
getRussian = &quot;таблице&quot;
Exit Function
Case Else
getRussian = &quot;Перевод не найден&quot;
End Select
@ -442,6 +445,9 @@ Function getEnglish(identifier As String) As String
Case &quot;inPageStyle&quot;
getEnglish = &quot;of page style&quot;
Exit Function
Case &quot;table&quot;
getEnglish = &quot;table&quot;
Exit Function
Case Else
getEnglish = &quot;No translation&quot;
End Select
@ -653,6 +659,9 @@ Function getCroatian(identifier As String) As String
Case &quot;inPageStyle&quot;
getCroatian = &quot;stil stranice&quot;
Exit Function
Case &quot;table&quot;
getCroatian = &quot;stola&quot;
Exit Function
Case Else
getCroatian = &quot;No translation&quot;
End Select
@ -864,6 +873,9 @@ Function getSerbian(identifier As String) As String
Case &quot;inPageStyle&quot;
getSerbian = &quot;стил странице&quot;
Exit Function
Case &quot;table&quot;
getSerbian = &quot;стола&quot;
Exit Function
Case Else
getSerbian = &quot;No translation&quot;
End Select
@ -1075,6 +1087,9 @@ Function getBosnian(identifier As String) As String
Case &quot;inPageStyle&quot;
getBosnian = &quot;stil stranice&quot;
Exit Function
Case &quot;table&quot;
getBosnian = &quot;stola&quot;
Exit Function
Case Else
getBosnian = &quot;No translation&quot;
End Select

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Validation" script:language="StarBasic">Sub markval7
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Validation" script:language="StarBasic">Sub markval9
End Sub
@ -28,6 +28,7 @@ Sub validateButton
Dim sectionsReport As String
Dim outlinePageStylesReport As String
Dim outlineInNotesReport As String
Dim oulineInTablesReport As String
Dim badText As Boolean
Dim badNumberings As Boolean
Dim needExtendedInfo As Boolean
@ -40,9 +41,13 @@ Sub validateButton
sectionsReport = checkSectionsInTables
outlineInNotesReport = checkNotesOutline()
outlinePageStylesReport = checkHeadingsInHeadersFooters
oulineInTablesReport = checkHeadingsInTextTables
If outlineInNotesReport &lt;&gt; &quot;&quot; Then
MsgBox outlineInNotesReport
EndIf
If oulineInTablesReport &lt;&gt; &quot;&quot; Then
MsgBox oulineInTablesReport
EndIf
If outlinePageStylesReport &lt;&gt; &quot;&quot; Then
MsgBox outlinePageStylesReport
EndIf
@ -68,7 +73,7 @@ Sub validateButton
printNumberingSymbols(needExtendedInfo)
If badText OR badNumberings OR footnotesReport &lt;&gt; &quot;&quot; OR graphicsReport &lt;&gt; &quot;&quot; Or outlineInNotesReport &lt;&gt; &quot;&quot; Or sectionsReport &lt;&gt; &quot;&quot; OR outlinePageStylesReport &lt;&gt; &quot;&quot; Then
If badText OR badNumberings OR footnotesReport &lt;&gt; &quot;&quot; OR graphicsReport &lt;&gt; &quot;&quot; Or outlineInNotesReport &lt;&gt; &quot;&quot; Or sectionsReport &lt;&gt; &quot;&quot; OR oulineInTablesReport &lt;&gt; &quot;&quot; OR outlinePageStylesReport &lt;&gt; &quot;&quot; Then
MsgBox getTranslation(&quot;validationWarning&quot;)
If badText Then
MsgBox getTranslation(&quot;validationBadSymbolsNotification&quot;)
@ -286,6 +291,85 @@ Function checkHeadingsInHeadersFooters As String
checkHeadingsInHeadersFooters = result
End Function
Function checkHeadingsInTextTables(oText As Object) As String
Dim enum1Element As Object
Dim enum1 As Object
Dim enum2 As Object
Dim thisPortion As Object
Dim footnoteText As Object
Dim label As String
Dim labelNum As Integer
Dim i As Integer
Dim count As Integer
Dim cell As Object
Dim cellText As Object
Dim firstCellName As String
Dim result As String
result = &quot;&quot;
enum1 = ThisComponent.Text.createEnumeration
While enum1.hasMoreElements
enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.TextTable&quot;) Then
firstCellName = enum1Element.getCellByPosition(0,0).cellName
cellNames = enum1Element.cellNames
For i = LBound(cellNames) To Ubound(cellNames)
cell = enum1Element.getCellByName(cellNames(i))
cellText = cell.getText()
If cellNames(i) = firstCellName Then
If isHeadingNotFirstInText(cellText) Then
result = result &amp; getTranslation(&quot;foundHeadingIn&quot;) &amp; &quot; &quot; &amp; getTranslation(&quot;table&quot;) &amp; &quot; &quot; &amp; enum1Element.TableName &amp; chr(10)
EndIf
Else
If isHeadingsInText(cellText) Then
result = result &amp; getTranslation(&quot;foundHeadingIn&quot;) &amp; &quot; &quot; &amp; getTranslation(&quot;table&quot;) &amp; &quot; &quot; &amp; enum1Element.TableName &amp; chr(10)
EndIf
EndIf
Next i
EndIf
Wend
checkHeadingsInTextTables = result
End Function
Function isHeadingNotFirstInText(oText As Object) As Boolean
Dim enum1Element As Object
Dim enum1 As Object
Dim enum2 As Object
Dim thisPortion As Object
Dim footnoteText As Object
Dim label As String
Dim labelNum As Integer
Dim i As Integer
Dim count As Integer
Dim cell As Object
Dim cellText As Object
Dim first As Boolean
first = true
enum1 = oText.createEnumeration
While enum1.hasMoreElements
enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
If Not first Then
If enum1Element.OutlineLevel &gt; 0 Then
isHeadingNotFirstInText = true
Exit Function
EndIf
EndIf
ElseIf enum1Element.supportsService(&quot;com.sun.star.text.TextTable&quot;) Then
cellNames = enum1Element.cellNames
For i = LBound(cellNames) To Ubound(cellNames)
cell = enum1Element.getCellByName(cellNames(i))
cellText = cell.getText()
If isHeadingsInText(cellText) Then
isHeadingNotFirstInText = true
Exit Function
EndIf
Next i
EndIf
first = false
Wend
isHeadingNotFirstInText = false
End Function
Function isHeadingsInText(oText As Object) As Boolean
Dim enum1Element As Object
Dim enum1 As Object
@ -322,7 +406,6 @@ Function isHeadingsInText(oText As Object) As Boolean
isHeadingsInText = false
End Function
Private Sub printNumberingSymbols(needExtendedInfo)
Dim families As Object
Dim numStyles As Object

View file

@ -1,4 +1,4 @@
def releaseVersion = "0.8.4"
def releaseVersion = "0.8.5"
task oxt(type: Zip) {
dependsOn = [ 'setVersion','setVersionInBasicCode' ]
from './'

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:dep="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink">
<identifier value="pro.litvinovg.Redaction"/>
<version value="0.8.4"/>
<version value="0.8.5"/>
<platform value="all"/>
<display-name>
<name lang="en">Cleaning and validation documents for publishing in html and epub with pagination</name>

Binary file not shown.