Compare commits
18 commits
Author | SHA1 | Date | |
---|---|---|---|
1d95cee96c | |||
4d70244041 | |||
5e9a36bbfd | |||
7e8fd76cb3 | |||
3123de95c8 | |||
8bef4474ae | |||
907c483775 | |||
6100d5d40e | |||
535e91d860 | |||
c0ecae410c | |||
0736f72257 | |||
2fa3ce3c86 | |||
fd074a02ab | |||
c1d12fb739 | |||
bbe0157ea2 | |||
4c4b9221df | |||
d5b3b4c9e8 | |||
9e5a5efa59 |
27 changed files with 415 additions and 107 deletions
|
@ -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="Clean" script:language="StarBasic">Sub mark87
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Clean" script:language="StarBasic">Sub mark96
|
||||
|
||||
End Sub
|
||||
|
||||
|
@ -50,6 +50,7 @@ Private Sub makerUpMenu
|
|||
advancedCleaningDialog.getControl("convertFontsToCharStyles").Label = getTranslation("advancedMenuconvertFontsToCharStyles")
|
||||
advancedCleaningDialog.getControl("fixBrokenCharBackTransparent").Label = getTranslation("fixBrokenCharBackTransparentMenuItem")
|
||||
advancedCleaningDialog.getControl("removeNotTransparentBackgrounds").Label = getTranslation("removeNotTransparentBackgrounds")
|
||||
advancedCleaningDialog.getControl("fixDiacriticKerning").Label = getTranslation("fixDiacriticKerning")
|
||||
advancedCleaningDialog.getControl("Cancel").Label = getTranslation("buttonCancel")
|
||||
advancedCleaningDialog.getControl("OK").Label = getTranslation("buttonOK")
|
||||
advancedCleaningDialog.getControl("buttonLoad").Label = getTranslation("buttonLoad")
|
||||
|
@ -58,7 +59,7 @@ Private Sub makerUpMenu
|
|||
advancedCleaningDialog.setVisible(true)
|
||||
Select Case advancedCleaningDialog.Execute()
|
||||
Case 1
|
||||
cleanAccordingTo(dialog)
|
||||
cleanAccordingTo(advancedCleaningDialog)
|
||||
Case 0
|
||||
End Select
|
||||
advancedCleaningDialog.dispose()
|
||||
|
@ -164,7 +165,9 @@ Private Sub cleanAccordingTo(dialog As Object)
|
|||
If dialog.getControl("removeNotTransparentBackgrounds").state = 1 Then
|
||||
fixColoredBackgroundInDoc()
|
||||
EndIf
|
||||
|
||||
If dialog.getControl("fixDiacriticKerning").state = 1 Then
|
||||
fixDiacriticKerning()
|
||||
EndIf
|
||||
|
||||
statusIndicator.end()
|
||||
saveAndreload()
|
||||
|
@ -203,6 +206,8 @@ Private Sub quietCleaning
|
|||
saveAndreload()
|
||||
statusIndicator = ThisComponent.getCurrentController.statusIndicator
|
||||
unicodeSymbolsConversion
|
||||
statusIndicator.Start(getTranslation("statusFixingDiacriticCharactersKerning"),100)
|
||||
fixDiacriticKerning
|
||||
statusIndicator.Start(getTranslation("statusCleaningManualFormatting"),100)
|
||||
cleanFormatting
|
||||
statusIndicator.Start(getTranslation("statusReplaceWhiteBackground"),100)
|
||||
|
@ -329,12 +334,18 @@ Private Sub unicodeSymbolsConversion
|
|||
'Extended latin-1 0080—00FF
|
||||
'Cyrillic unicode block range \u0400-\u04FF
|
||||
'Basic Latin \u0020-\u007E
|
||||
'Combining diacritical marks 0301 0304 0323 032e 0331 035f
|
||||
'Combining diacritical marks 0301 0304 0303 0323 032e 0331 035f
|
||||
combiningDiacritic_Astra = "\u0301\u0303\u0304\u0308\u0323\u032e\u0331\u0341\u035f"
|
||||
Dim extendedLatinA_Astra As String
|
||||
extendedLatinA_Astra = "\u1e15\u1e17\u1e53\u0129\u0169"
|
||||
'
|
||||
'
|
||||
'
|
||||
'General Punctuation \u2000-\u206f
|
||||
'Latin Extended A \u0100-\u017f
|
||||
'\u02bb Modifier Letter Turned Comma is in IPH Astra
|
||||
' unicodeConversionEverywhere("[\u0020-\u007F]+",RAtts)
|
||||
unicodeConversionEverywhere("[\u0020-\u007f\u0080-\u00ff\u0400-\u04ff\u2000-\u206f\u2100-\u214f\u0301\u0304\u0323\u032e\u0331\u0341\u035f\u02bb\u0100-\u017f]+",RAtts)
|
||||
unicodeConversionEverywhere("[\u0020-\u007f\u0080-\u00ff\u0400-\u04ff\u2000-\u206f\u2100-\u214f\u02bb\u0100-\u017f" & combiningDiacritic_Astra & extendedLatinA_Astra &"]+",RAtts)
|
||||
'Arabic Scheherazade
|
||||
'Arabic Presentation Forms-A fb50-fdff
|
||||
'Arabic Presentation Forms-B fe70-feff
|
||||
|
@ -459,15 +470,24 @@ Sub removeAllFields()
|
|||
field = fieldEnum.nextElement()
|
||||
field.dispose()
|
||||
Wend
|
||||
End sub
|
||||
End Sub
|
||||
|
||||
Public Const RX_Greek_letters = "\u0388-\u03ce"
|
||||
Public Const RX_Latin_up_alphabet = "\u0041-\u005a"
|
||||
Public Const RX_Latin_low_alphabet = "\u0061-\u007a"
|
||||
Public Const RX_Cyrillic_alphabet = "\u0410-\u044f"
|
||||
Public Const RX_Comma = "\u002c"
|
||||
Public Const RX_Digits = "\u0030-\u0039"
|
||||
Public Const RX_Roman_numbers = "MDCLXVI"
|
||||
Public Const RX_Letters_Dash = "[" & RX_Latin_up_alphabet & RX_Latin_low_alphabet & RX_Cyrillic_alphabet & RX_Greek_letters & "]"
|
||||
Public Const RX_Letters = "[" & RX_Latin_up_alphabet & RX_Latin_low_alphabet & RX_Cyrillic_alphabet & RX_Greek_letters & "]"
|
||||
|
||||
Private Sub fixFrequentMistakes
|
||||
Dim config As Object
|
||||
config = initRedactionConfiguration()
|
||||
Dim NBSP As String
|
||||
Dim space As String
|
||||
Dim latinPlusCyrillicLettersRegExp As String
|
||||
latinPlusCyrillicLettersRegExp = "[\u0041-\u005a\u0061-\u007a\u0410-\u044f]"
|
||||
|
||||
NBSP = " "
|
||||
space = " "
|
||||
'Не должно быть символов табуляции
|
||||
|
@ -484,19 +504,21 @@ Private Sub fixFrequentMistakes
|
|||
AskAndReplace("[:space:]+(?=[\.,;:?!\)\]\}»¡¿”’])","")
|
||||
'Не должно быть пробелов после скобок [({ и кавычек «„
|
||||
AskAndReplace("(?<=[\(\[\{«„])[:space:]","")
|
||||
'Между буквами среднее тире должно обрамляться пробелами
|
||||
AskAndReplace("(?<=" & latinPlusCyrillicLettersRegExp & ")–(?=" & latinPlusCyrillicLettersRegExp & ")",NBSP & "–" & NBSP)
|
||||
'Между буквами дефис-минус, цифровое тире и длинное тире заменяется на среднее тире
|
||||
AskAndReplace("(?<=" & latinPlusCyrillicLettersRegExp & "[:space:])[-‒—−](?=[:space:]" & latinPlusCyrillicLettersRegExp & ")","–")
|
||||
'Между буквами среднее или длинное тире должно быть замененено на среднее и обрамлено пробелами
|
||||
AskAndReplace("(?<=" & RX_Letters_Dash & ")[—–]+(?=.)",NBSP & "–" & NBSP)
|
||||
AskAndReplace("(?<=.)[—–]+(?=" & RX_Letters_Dash & ")",NBSP & "–" & NBSP)
|
||||
'Между буквами дефисы-минусы, цифровые тире, средние тире и длинные тире заменяются на одно среднее тире
|
||||
AskAndReplace("(?<=" & RX_Letters_Dash & "[:space:])[-‒—−–]+(?=[:space:].)","–")
|
||||
AskAndReplace("(?<=.[:space:])[-‒—−–]+(?=[:space:]" & RX_Letters_Dash & ")","–")
|
||||
'Между двумя цифрами и тире не долнжо быть пробелов. А также тире должно быть цифровым.
|
||||
'Также проверяем, что перед искомым тире нет DOI
|
||||
'''''AskAndReplace("(?<!DOI[0-9. /XVI:-‒–—−-]{1,50})(?<=[:digit:])(?:[:space:])?[-‒–—−](?:[:space:])?(?=[:digit:])","‒")
|
||||
'Между двумя римскими цифрами и тире между ними не долнжо быть пробелов. А также тире должно быть средним
|
||||
AskAndReplace("(?<=[MDCLXVI])(?:[:space:])?[-‒–—−](?:[:space:])?(?=[MDCLXVI])","–")
|
||||
AskAndReplace("(?<=[" & RX_Roman_numbers & "])(?:[:space:])?[-‒–—−]+(?:[:space:])?(?=[" & RX_Roman_numbers & "])","–")
|
||||
'Между буквой и угловой открывающейся скобкой должен быть пробел
|
||||
AskAndReplace("(?<=" & latinPlusCyrillicLettersRegExp & ")<(?=…>)",space & "<")
|
||||
AskAndReplace("(?<=" & RX_Letters & ")<(?=…>)",space & "<")
|
||||
'Между угловой закрывающейся скобкой и буквой должен быть пробел
|
||||
AskAndReplace("(?<=<…)>(?=" & latinPlusCyrillicLettersRegExp & ")",">" & space)
|
||||
AskAndReplace("(?<=<…)>(?=" & RX_Letters & ")",">" & space)
|
||||
|
||||
If config.getPropertyValue("fixes_russian_iph") = "true" Then
|
||||
'между N. Y. не должно быть пробела
|
||||
|
@ -2101,4 +2123,67 @@ Function fixColoredBackgroundInDoc() As Boolean
|
|||
EndIf
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
Sub fixDiacriticKerning
|
||||
Dim oSearch As Object
|
||||
Dim oFound As Object
|
||||
Dim oPara As Object
|
||||
oSearch = ThisComponent.createSearchDescriptor()
|
||||
oSearch.SearchString = "[\u0300-\u036F]"
|
||||
oSearch.SearchRegularExpression=True
|
||||
oSearch.searchAll=True
|
||||
oFound = ThisComponent.findFirst(oSearch)
|
||||
Do While Not IsNull(oFound)
|
||||
oPara = oFound.TextParagraph
|
||||
fixDiacriticKerningInPara(oPara)
|
||||
oFound = ThisComponent.findNext(oFound.End, oSearch)
|
||||
Loop
|
||||
End Sub
|
||||
|
||||
Sub fixDiacriticKerningInPara(oPara As Object)
|
||||
Dim paraEnum As Object
|
||||
Dim portion As Object
|
||||
Dim prevPortion As Object
|
||||
paraEnum = oPara.createEnumeration
|
||||
If paraEnum.hasMoreElements Then
|
||||
prevPortion = paraEnum.nextElement
|
||||
While paraEnum.hasMoreElements
|
||||
portion = paraEnum.nextElement
|
||||
While isFirstCharDiacritic(portion)
|
||||
moveFirstCharacter(portion, prevPortion)
|
||||
Wend
|
||||
prevPortion = portion
|
||||
Wend
|
||||
EndIf
|
||||
End Sub
|
||||
|
||||
Function isFirstCharDiacritic(portion As Object) As Boolean
|
||||
isFirstCharDiacritic = false
|
||||
Dim portionText As String
|
||||
Dim diaLowBound As Long
|
||||
Dim diaHighBound As Long
|
||||
Dim charNum As Long
|
||||
diaLowBound = 768
|
||||
diaHighBound = 879
|
||||
portionText = portion.String
|
||||
If Len(portionText) = 0 Then
|
||||
Exit Function
|
||||
EndIf
|
||||
charNum = Asc(portionText)
|
||||
If charNum >= diaLowBound And charNum <= diaHighBound Then
|
||||
isFirstCharDiacritic = true
|
||||
EndIf
|
||||
End Function
|
||||
|
||||
Sub moveFirstCharacter(portion As Object, prevPortion As Object)
|
||||
Dim prevEnd As Object
|
||||
Dim nextStart As Object
|
||||
prevEnd = prevPortion.getEnd()
|
||||
prevEnd.String = Left(portion.String,1)
|
||||
nextStart = portion.Text.createTextCursorByRange(portion.Start)
|
||||
nextStart.goRight(1,true)
|
||||
nextStart.setString("")
|
||||
End Sub
|
||||
|
||||
</script:module>
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
|
||||
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="CleaningDialog" dlg:left="107" dlg:top="22" dlg:width="237" dlg:height="265" dlg:help-text="&21.CleaningDialog.HelpText" dlg:closeable="true" dlg:moveable="true" dlg:title="&22.CleaningDialog.Title">
|
||||
<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="CleaningDialog" dlg:left="107" dlg:top="22" dlg:width="237" dlg:height="285" dlg:help-text="&21.CleaningDialog.HelpText" dlg:closeable="true" dlg:moveable="true" dlg:title="&22.CleaningDialog.Title">
|
||||
<dlg:bulletinboard>
|
||||
<dlg:button dlg:id="Cancel" dlg:tab-index="0" dlg:left="28" dlg:top="251" dlg:width="40" dlg:height="12" dlg:value="Отмена" dlg:button-type="cancel"/>
|
||||
<dlg:button dlg:id="Cancel" dlg:tab-index="0" dlg:left="28" dlg:top="271" dlg:width="40" dlg:height="12" dlg:value="Отмена" dlg:button-type="cancel"/>
|
||||
<dlg:button dlg:id="CommandButton1" dlg:tab-index="1" dlg:left="24" dlg:top="180" dlg:width="2" dlg:height="0" dlg:value="CommandButton1"/>
|
||||
<dlg:button dlg:id="OK" dlg:tab-index="2" dlg:left="92" dlg:top="251" dlg:width="40" dlg:height="12" dlg:value="OK" dlg:button-type="ok"/>
|
||||
<dlg:button dlg:id="OK" dlg:tab-index="2" dlg:left="92" dlg:top="271" dlg:width="40" dlg:height="12" dlg:value="OK" dlg:button-type="ok"/>
|
||||
<dlg:checkbox dlg:id="fontsInStyles" dlg:tab-index="3" dlg:left="11" dlg:top="10" dlg:width="218" dlg:height="7" dlg:value="Заменить названия шрифтов в стилях" dlg:checked="false"/>
|
||||
<dlg:checkbox dlg:id="removeLinks" dlg:tab-index="6" dlg:left="11" dlg:top="60" dlg:width="218" dlg:height="7" dlg:value="Удалить гиперссылки" dlg:checked="false"/>
|
||||
<dlg:checkbox dlg:id="cleanFormatting" dlg:tab-index="5" dlg:left="11" dlg:top="30" dlg:width="218" dlg:height="7" dlg:value="Очистить форматирование" dlg:checked="false"/>
|
||||
|
@ -20,7 +20,7 @@
|
|||
<dlg:checkbox dlg:id="removeManualPageBreaks" dlg:tab-index="15" dlg:left="11" dlg:top="160" dlg:width="218" dlg:height="7" dlg:value="Удалить все разрывы страниц" dlg:checked="false"/>
|
||||
<dlg:checkbox dlg:id="replaceWhiteBackground" dlg:tab-index="16" dlg:left="11" dlg:top="40" dlg:width="218" dlg:height="7" dlg:value="Заменить белый фон символов на прозрачный" dlg:checked="false"/>
|
||||
<dlg:checkbox dlg:id="removeBasic" dlg:tab-index="17" dlg:left="11" dlg:top="170" dlg:width="218" dlg:height="7" dlg:value="Удалить макросы" dlg:checked="false"/>
|
||||
<dlg:button dlg:id="buttonLoad" dlg:tab-index="18" dlg:left="158" dlg:top="251" dlg:width="65" dlg:height="12" dlg:value="loadTemplate">
|
||||
<dlg:button dlg:id="buttonLoad" dlg:tab-index="18" dlg:left="158" dlg:top="271" dlg:width="65" dlg:height="12" dlg:value="loadTemplate">
|
||||
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Redaction.Configuration.configureStyleFileDialog?language=Basic&location=application" script:language="Script"/>
|
||||
</dlg:button>
|
||||
<dlg:checkbox dlg:id="removeAllFields" dlg:tab-index="19" dlg:left="11" dlg:top="180" dlg:width="218" dlg:height="7" dlg:value="Удалить все поля" dlg:checked="false"/>
|
||||
|
@ -30,6 +30,7 @@
|
|||
<dlg:checkbox dlg:id="convertFontsToCharStyles" dlg:tab-index="23" dlg:left="11" dlg:top="210" dlg:width="218" dlg:height="7" dlg:value="Конвертировать шрифты в стили символов" dlg:checked="false"/>
|
||||
<dlg:checkbox dlg:id="fixBrokenCharBackTransparent" dlg:tab-index="24" dlg:left="11" dlg:top="220" dlg:width="218" dlg:height="7" dlg:value="fixBrokenCharBackTransparent" dlg:checked="false"/>
|
||||
<dlg:checkbox dlg:id="removeNotTransparentBackgrounds" dlg:tab-index="25" dlg:left="11" dlg:top="50" dlg:width="218" dlg:height="7" dlg:value="Удалить непрозрачные фоны в тексте" dlg:checked="false"/>
|
||||
<dlg:text dlg:id="description" dlg:tab-index="26" dlg:left="11" dlg:top="231" dlg:width="217" dlg:height="16" dlg:value="Label1" dlg:multiline="true"/>
|
||||
<dlg:text dlg:id="description" dlg:tab-index="26" dlg:left="11" dlg:top="251" dlg:width="217" dlg:height="16" dlg:value="Label1" dlg:multiline="true"/>
|
||||
<dlg:checkbox dlg:id="fixDiacriticKerning" dlg:tab-index="27" dlg:left="11" dlg:top="230" dlg:width="218" dlg:height="7" dlg:value="Fix diacritic kerning" dlg:checked="false"/>
|
||||
</dlg:bulletinboard>
|
||||
</dlg:window>
|
|
@ -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 = "cleanAndValidate"
|
||||
Public Const redactionExtensionVersion = "0.10.0"
|
||||
Public Const redactionExtensionVersion = "0.10.11"
|
||||
Public Const template_name_monography = "Монография"
|
||||
Public Const template_name_pj = "Философский журнал"
|
||||
Public Const template_name_pq = "Вопросы философии"
|
||||
|
@ -10,10 +10,13 @@ Public Const template_name_hpe = "Историко-философский
|
|||
Public Const template_name_pr = "Философия религии"
|
||||
Public Const template_name_fnit = "Философия науки и техники"
|
||||
Public Const template_name_pa = "Философская антропология"
|
||||
Public Const template_name_pcr = "Путь цивилизационного развития"
|
||||
Public Const template_name_pcr = "Проблемы цивилизационного развития"
|
||||
Public Const template_name_eifn = "Эпистемология и философия науки"
|
||||
Public Const template_name_et = "Этическая мысль"
|
||||
Public Const template_name_ephe = "Электронная философская энциклопедия"
|
||||
Public Const template_name_iph_big = "Большой формат издания"
|
||||
Public Const template_manual = "custom_selected_template"
|
||||
Public Const articles_path = "/templates/articles/"
|
||||
|
||||
Function initRedactionConfiguration()
|
||||
On Error Goto exceptionHandler
|
||||
|
@ -323,16 +326,19 @@ End Function
|
|||
|
||||
Function getTemplateNames() As Variant
|
||||
Dim names() As String
|
||||
AddToArray(names, template_name_monography)
|
||||
' AddToArray(names, template_name_monography)
|
||||
AddToArray(names, template_name_pq)
|
||||
AddToArray(names, template_name_hp)
|
||||
AddToArray(names, template_name_hpe)
|
||||
AddToArray(names, template_name_pr)
|
||||
AddToArray(names, template_name_fnit)
|
||||
AddToArray(names, template_name_pa)
|
||||
AddToArray(names, template_name_pj)
|
||||
AddToArray(names, template_name_pcr)
|
||||
AddToArray(names, template_name_eifn)
|
||||
AddToArray(names, template_name_et)
|
||||
AddToArray(names, template_name_ephe)
|
||||
AddToArray(names, template_name_iph_big)
|
||||
getTemplateNames = names
|
||||
End Function
|
||||
|
||||
|
@ -351,14 +357,44 @@ Function getTemplateFile(templateName As String) As String
|
|||
fileName = config.getPropertyValue("defaultTemplate")
|
||||
getTemplateFile = getTemplatePath() & "/" & fileName
|
||||
Exit Function
|
||||
Case template_name_pj
|
||||
getTemplateFile = extensionPath() & "/templates/articles/default_article_template_ru.ott"
|
||||
Exit Function
|
||||
Case template_name_eifn
|
||||
getTemplateFile = extensionPath() & "/templates/articles/статья_журнала_ЭиФН.ott"
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_эифн.ott"
|
||||
Exit Function
|
||||
Case template_name_fnit
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_фнит.ott"
|
||||
Exit Function
|
||||
Case template_name_pa
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_фа.ott"
|
||||
Exit Function
|
||||
Case template_name_pj
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_фж.ott"
|
||||
Exit Function
|
||||
Case template_name_et
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_эм.ott"
|
||||
Exit Function
|
||||
Case template_name_pq
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_вф.ott"
|
||||
Exit Function
|
||||
Case template_name_pr
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_фр.ott"
|
||||
Exit Function
|
||||
Case template_name_pcr
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_пцр.ott"
|
||||
Exit Function
|
||||
Case template_name_hp
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_иф.ott"
|
||||
Exit Function
|
||||
Case template_name_hpe
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_ифе.ott"
|
||||
Exit Function
|
||||
Case template_name_ephe
|
||||
getTemplateFile = extensionPath() & articles_path & "статья_эфэ.ott"
|
||||
Exit Function
|
||||
Case template_name_iph_big
|
||||
getTemplateFile = extensionPath() & "/templates/books/большой_формат_для_архива.ott"
|
||||
Exit Function
|
||||
Case Else
|
||||
getTemplateFile = extensionPath() & "/templates/articles/default_article_template_ru.ott"
|
||||
getTemplateFile = extensionPath() & articles_path & "статья.ott"
|
||||
Exit Function
|
||||
End Select
|
||||
End Function
|
||||
|
|
|
@ -344,6 +344,12 @@ Function getRussian(identifier As String) As String
|
|||
Case "templateChosen"
|
||||
getRussian = "Выбран шаблон"
|
||||
Exit Function
|
||||
Case "statusFixingDiacriticCharactersKerning"
|
||||
getRussian = "Исправляем комбинирование с диакритическими символами"
|
||||
Exit Function
|
||||
Case "fixDiacriticKerning"
|
||||
getRussian = "Исправить комбинирование с диакритическими символами"
|
||||
Exit Function
|
||||
Case Else
|
||||
getRussian = "Перевод не найден"
|
||||
End Select
|
||||
|
@ -670,6 +676,12 @@ Function getEnglish(identifier As String) As String
|
|||
Case "templateChosen"
|
||||
getEnglish = "Selected template"
|
||||
Exit Function
|
||||
Case "statusFixingDiacriticCharactersKerning"
|
||||
getEnglish = "Fixing the combination with diacritics "
|
||||
Exit Function
|
||||
Case "fixDiacriticKerning"
|
||||
getEnglish = "Fix combining with diacritic characters"
|
||||
Exit Function
|
||||
Case Else
|
||||
getEnglish = "No translation"
|
||||
End Select
|
||||
|
@ -995,6 +1007,12 @@ Function getCroatian(identifier As String) As String
|
|||
Case "templateChosen"
|
||||
getCroatian = "Izabrani šablon"
|
||||
Exit Function
|
||||
Case "statusFixingDiacriticCharactersKerning"
|
||||
getCroatian = "Popravljanje kombinacije s dijakritičkim znakovima"
|
||||
Exit Function
|
||||
Case "fixDiacriticKerning"
|
||||
getCroatian = "Ispravite kombiniranje s naglašenim likovima"
|
||||
Exit Function
|
||||
Case Else
|
||||
getCroatian = "No translation"
|
||||
End Select
|
||||
|
@ -1320,6 +1338,12 @@ Function getSerbian(identifier As String) As String
|
|||
Case "templateChosen"
|
||||
getSerbian = "Изабрани шаблон"
|
||||
Exit Function
|
||||
Case "statusFixingDiacriticCharactersKerning"
|
||||
getSerbian = "Ispravljanje kombinacije sa dijakritičkim znacima "
|
||||
Exit Function
|
||||
Case "fixDiacriticKerning"
|
||||
getSerbian = "Ispravite kombiniranje s naglašenim likovima"
|
||||
Exit Function
|
||||
Case Else
|
||||
getSerbian = "No translation"
|
||||
End Select
|
||||
|
@ -1645,6 +1669,12 @@ Function getBosnian(identifier As String) As String
|
|||
Case "templateChosen"
|
||||
getBosnian = "Izabrani šablon"
|
||||
Exit Function
|
||||
Case "statusFixingDiacriticCharactersKerning"
|
||||
getBosnian = "Popravljanje kombinacije s dijakritičkim znakovima"
|
||||
Exit Function
|
||||
Case "fixDiacriticKerning"
|
||||
getBosnian = "Ispravite kombiniranje s naglašenim likovima"
|
||||
Exit Function
|
||||
Case Else
|
||||
getBosnian = "No translation"
|
||||
End Select
|
||||
|
|
|
@ -1,7 +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 markval30
|
||||
|
||||
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Validation" script:language="StarBasic">Sub markval31
|
||||
End Sub
|
||||
|
||||
|
||||
|
@ -770,11 +769,9 @@ Sub fontReportButton
|
|||
Exit sub
|
||||
EndIf
|
||||
Dim FileName As String
|
||||
FileName = getCharsInFont(targetFontName)
|
||||
getCharsInFont(targetFontName)
|
||||
statusIndicator.end()
|
||||
If FileName <> "" Then
|
||||
openReport(FileName)
|
||||
EndIf
|
||||
|
||||
End Sub
|
||||
|
||||
Sub onSelectFont(oEvent)
|
||||
|
@ -914,7 +911,7 @@ Sub addToArray(xArray(),vNextElement)
|
|||
xArray(iUB) = vNextElement
|
||||
End Sub
|
||||
|
||||
Function getCharsInFont(fontName As String) As String
|
||||
Sub getCharsInFont(fontName As String)
|
||||
Dim resultArray() As String
|
||||
Dim pageNums() As Long
|
||||
Dim firstPages() As Long
|
||||
|
@ -1000,43 +997,30 @@ Function getCharsInFont(fontName As String) As String
|
|||
EndIf
|
||||
Next j
|
||||
Next i
|
||||
resultString = ""
|
||||
For i = LBound(resultArray) To UBound(resultArray)
|
||||
resultString = resultString & "<a href='https://unicode-table.com/ru/" & resultArray(i) & "'" & ">https://unicode-table.com/ru/" & resultArray(i) & "</a> " & getTranslation("charFirstPage") & " " & pageNums(i) & "<br>" & Chr(10)
|
||||
Next i
|
||||
|
||||
If resultString <> "" Then
|
||||
'MsgBox "Символы в шрифте "& fontName &Chr(10)&resultString
|
||||
Dim FileName As String 'Holds the file name
|
||||
Dim n As Integer 'Holds the file number
|
||||
Dim f As Integer 'Index variable
|
||||
Dim s As String 'Temporary string for input
|
||||
Dim fileaccess As Object
|
||||
Dim outtextstream As Object
|
||||
Dim out As Object
|
||||
|
||||
Dim sTemp$
|
||||
GlobalScope.BasicLibraries.loadLibrary("Tools")
|
||||
path=DirectoryNameoutofPath(ThisComponent.getURL(),"/")
|
||||
FileName = path & "/symbolsInFont" & fontName & ".html"
|
||||
'n = FreeFile() 'Next free file number
|
||||
'Open FileName For Output Access Read Write As #n 'Open for read/write
|
||||
fileaccess = createUnoService ("com.sun.star.ucb.SimpleFileAccess")
|
||||
outtextstream = createUnoService ("com.sun.star.io.TextOutputStream")
|
||||
outtextstream.setEncoding( "UTF-8" )
|
||||
out = fileaccess.openFileWrite( FileName )
|
||||
outtextstream.setOutputStream( out )
|
||||
outtextstream.writeString( "<html><head><title>" & getTranslation("symbolsInFontHeading") & " "& fontName & "</title></head><body><h2>" & getTranslation("symbolsInFontHeading") & " "& fontName &":</h2>"&resultString &"</body></html>" )
|
||||
outtextstream.closeOutput()
|
||||
getCharsInFont = FileName
|
||||
Exit Function
|
||||
Dim newDocCursor As Object
|
||||
Dim newDoc As Object
|
||||
newDoc = starDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Array())
|
||||
newDocCursor = newDoc.getCurrentController().getViewCursor()
|
||||
newDocCursor.String = getTranslation("symbolsInFontHeading") & " " & fontName
|
||||
newDocCursor.ParaStyleName = "Heading 1"
|
||||
newDocCursor.collapseToEnd()
|
||||
newDocCursor.Text.insertControlCharacter(newDocCursor.End,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
|
||||
For i = LBound(resultArray) To UBound(resultArray)
|
||||
newDocCursor.ParaStyleName = "Text body"
|
||||
newDocCursor.String = "https://unicode-table.com/ru/" & resultArray(i)
|
||||
newDocCursor.HyperLinkURL = "https://unicode-table.com/ru/" & resultArray(i)
|
||||
newDocCursor.collapseToEnd()
|
||||
newDocCursor.String = " " & getTranslation("charFirstPage") & " " & pageNums(i)
|
||||
newDocCursor.collapseToEnd()
|
||||
newDocCursor.Text.insertControlCharacter(newDocCursor.End,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
|
||||
Next i
|
||||
Exit Sub
|
||||
|
||||
Else
|
||||
MsgBox getTranslation("symbolsInFontNotFound1") & " " & fontName & " " & getTranslation("symbolsInFontNotFound2")
|
||||
getCharsInFont = ""
|
||||
Exit Function
|
||||
EndIf
|
||||
End Function
|
||||
End Sub
|
||||
|
||||
|
||||
Function findBadCharacters() As Boolean
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
apply plugin: 'java'
|
||||
task oxt(type: Zip) {
|
||||
dependsOn = [ 'setVersion','setVersionInBasicCode' ]
|
||||
archiveName 'cleanAndValidate.oxt'
|
||||
archiveFileName = 'cleanAndValidate.oxt'
|
||||
destinationDirectory = file("./")
|
||||
from './'
|
||||
include '*'
|
||||
include '*/*'
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
<description xmlns="http://openoffice.org/extensions/update/2006"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<identifier value="pro.litvinovg.Redaction"/>
|
||||
<version value="0.9.37" />
|
||||
<version value="0.10.11" />
|
||||
<update-download>
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/cleanandvalidate/uploads/1e0dc8e6899835eca2ba546c22725eba/cleanAndValidate.oxt" />
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/cleanandvalidate/uploads/330066acb026243a8a0eab002de1a1f3/cleanAndValidate.oxt" />
|
||||
</update-download>
|
||||
<release-notes>
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/cleanandvalidate/-/raw/master/releasenotes.txt" lang="en" />
|
||||
|
|
240
description.xml
240
description.xml
|
@ -1,205 +1,375 @@
|
|||
<?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.10.11"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<version value="0.10.0"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<platform value="all"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<display-name>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<name lang="en">Cleaning and validation documents for publishing in html and epub with pagination</name>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<name lang="ru">Чистка и проверка документов для издания в html и epub с сохранением пагинации</name>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</display-name>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<registration>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<simple-license accept-by="admin" suppress-if-required="true" suppress-on-update="true">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<license-text lang="en" xlink:href="license_en.txt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<license-text lang="ru" xlink:href="license_ru.txt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</simple-license>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</registration>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<dependencies>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<OpenOffice.org-minimal-version dep:name="OpenOffice.org, LibreOffice 4.1 or later" value="4.1"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<update-information>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/cleanandvalidate/-/raw/master/cleanandvalidate.update.xml"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</update-information>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<publisher>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<name lang="en" xlink:href="mailto:public@litvinovg.pro">Georgy Litvinov</name>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</publisher>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<release-notes>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<src lang="en" xlink:href="releasenotes.txt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</release-notes>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<extension-description>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<src lang="ru" xlink:href="description/description_ru.txt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<src lang="en" xlink:href="description/description_en.txt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</extension-description>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<icon>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<default xlink:href="icons/addon_icon.svg"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<high-contrast xlink:href="icons/addon_icon.svg"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</icon>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
version=0.10.0
|
||||
version=0.10.11
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
The author of this extension is:
|
||||
Georgy Litvinov (public@litvinovg.pro)
|
||||
Copyright 20212121212121212121212121212121212121212121n redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 3 of the License.
|
||||
Copyright 2021 redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 3 of the License.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
BIN
templates/articles/статья.ott
Normal file
BIN
templates/articles/статья.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_вф.ott
Normal file
BIN
templates/articles/статья_вф.ott
Normal file
Binary file not shown.
Binary file not shown.
BIN
templates/articles/статья_иф.ott
Normal file
BIN
templates/articles/статья_иф.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_ифе.ott
Normal file
BIN
templates/articles/статья_ифе.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_пцр.ott
Normal file
BIN
templates/articles/статья_пцр.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_фа.ott
Normal file
BIN
templates/articles/статья_фа.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_фж.ott
Normal file
BIN
templates/articles/статья_фж.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_фнит.ott
Normal file
BIN
templates/articles/статья_фнит.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_фр.ott
Normal file
BIN
templates/articles/статья_фр.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_эифн.ott
Normal file
BIN
templates/articles/статья_эифн.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_эм.ott
Normal file
BIN
templates/articles/статья_эм.ott
Normal file
Binary file not shown.
BIN
templates/articles/статья_эфэ.ott
Normal file
BIN
templates/articles/статья_эфэ.ott
Normal file
Binary file not shown.
BIN
templates/books/большой_формат_для_архива.ott
Normal file
BIN
templates/books/большой_формат_для_архива.ott
Normal file
Binary file not shown.
BIN
translations.ods
BIN
translations.ods
Binary file not shown.
Loading…
Add table
Reference in a new issue