Compare commits

..

No commits in common. "master" and "0.3.1" have entirely different histories.

45 changed files with 754 additions and 8253 deletions

View file

@ -3,10 +3,6 @@
<node oor:name="AddonUI"> <node oor:name="AddonUI">
<node oor:name="OfficeToolBar"> <node oor:name="OfficeToolBar">
<node oor:name="pro.litvinovg.ePublishing.panel" oor:op="replace"> <node oor:name="pro.litvinovg.ePublishing.panel" oor:op="replace">
<prop oor:name="Docked" oor:op="fuse"><value>true</value></prop>
<prop oor:name="HideFromToolbarMenu" oor:op="fuse"><value>false</value></prop>
<prop oor:name="Locked" oor:op="fuse"><value>false</value></prop>
<node oor:name="buttonShrinkText" oor:op="replace"> <node oor:name="buttonShrinkText" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string"> <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value> <value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
@ -14,10 +10,6 @@
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Сжать текст</value> <value xml:lang="ru">Сжать текст</value>
<value xml:lang="en">Shrink text</value> <value xml:lang="en">Shrink text</value>
<value xml:lang="sr">Стисни текст</value>
<value xml:lang="hr">Stisni tekst</value>
<value xml:lang="bs">Stisni tekst</value>
<value xml:lang="fr">Ressérer le texte</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Archive.shrinkPageContent</value> <value>macro:///ePublishing.Archive.shrinkPageContent</value>
@ -31,12 +23,8 @@
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value> <value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Заменить cтиль параграфа с удалением заменяемого</value> <value xml:lang="ru">Заменить cтиль параграфа</value>
<value xml:lang="en">Replace para style and remove replaced</value> <value xml:lang="en">Replace para style</value>
<value xml:lang="fr">Remplacer style du paragraphe</value>
<value xml:lang="sr">Замените стил параграфа и уклоните замењено</value>
<value xml:lang="hr">Zamijenite stil paragrafа i uklonite zamijenjeno</value>
<value xml:lang="bs">Zamijenite stil paragrafа i uklonite zamijenjeno</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Archive.replaceParaStyle</value> <value>macro:///ePublishing.Archive.replaceParaStyle</value>
@ -52,10 +40,6 @@
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Создать связанные ссылки</value> <value xml:lang="ru">Создать связанные ссылки</value>
<value xml:lang="en">Create bidirectional links</value> <value xml:lang="en">Create bidirectional links</value>
<value xml:lang="fr">Créer liens bidirectionnels</value>
<value xml:lang="sr">Креирајте повезане везе</value>
<value xml:lang="hr">Kreirajte povezane veze</value>
<value xml:lang="bs">Kreirajte povezane veze</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Archive.createBidirectLink</value> <value>macro:///ePublishing.Archive.createBidirectLink</value>
@ -64,65 +48,17 @@
<value>_self</value> <value>_self</value>
</prop> </prop>
</node> </node>
<node oor:name="buttonEndnotesConversion" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Конвертация концевых сносок</value>
<value xml:lang="en">Endnotes conversion</value>
<value xml:lang="fr">Conversion de notes de fin</value>
<value xml:lang="sr">Конверзија крајњих белешки</value>
<value xml:lang="hr">konverzija završnih bilješki</value>
<value xml:lang="bs">konverzija završnih bilješki</value>
</prop>
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Endnotes.convertEndnotesExecution</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
</node>
<node oor:name="balanceTail" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Балансировка хвоста</value>
<value xml:lang="fr">Équilibrer la dernière ligne</value>
<value xml:lang="en">Balance the last line </value>
<value xml:lang="sr">Уравнотежите последњу линију</value>
<value xml:lang="hr">Uravnotežite posljednji redak</value>
<value xml:lang="bs">Uravnotežite posljednji redak</value>
</prop>
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Archive.balanceCurParaLastLine</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
</node>
</node> </node>
</node> </node>
<node oor:name="OfficeToolBar"> <node oor:name="OfficeToolBar">
<node oor:name="pro.litvinovg.ePublishing.makeuppanel" oor:op="replace"> <node oor:name="pro.litvinovg.ePublishing.makeuppanel" oor:op="replace">
<prop oor:name="Docked" oor:op="fuse"><value>true</value></prop>
<prop oor:name="HideFromToolbarMenu" oor:op="fuse"><value>false</value></prop>
<prop oor:name="Locked" oor:op="fuse"><value>false</value></prop>
<node oor:name="percentPlus" oor:op="replace"> <node oor:name="percentPlus" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string"> <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value> <value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="fr">Augmenter la largeur des caractères</value>
<value xml:lang="ru">Увеличить ширину символа</value> <value xml:lang="ru">Увеличить ширину символа</value>
<value xml:lang="en">Increase symbol width</value> <value xml:lang="en">Increase symbol width</value>
<value xml:lang="sr">Повећајте ширину знака</value>
<value xml:lang="hr">Povećajte širinu znaka</value>
<value xml:lang="bs">Povećajte širinu znaka</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.MakeUp.incrementCharWidth</value> <value>macro:///ePublishing.MakeUp.incrementCharWidth</value>
@ -137,11 +73,7 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Уменьшить ширину символа</value> <value xml:lang="ru">Уменьшить ширину символа</value>
<value xml:lang="fr">Diminuer la largeur des caractères</value>
<value xml:lang="en">Decrease symbol width</value> <value xml:lang="en">Decrease symbol width</value>
<value xml:lang="sr">Смањивање ширине знака</value>
<value xml:lang="hr">Smanjivanje širine znaka</value>
<value xml:lang="bs">Smanjivanje širine znaka</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.MakeUp.decrementCharWidth</value> <value>macro:///ePublishing.MakeUp.decrementCharWidth</value>
@ -156,12 +88,8 @@
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value> <value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Увеличить межсимвольный интервал</value> <value xml:lang="ru">Увеличить межсимволный интервал</value>
<value xml:lang="fr">Augmenter la chasse</value>
<value xml:lang="en">Increase kerning</value> <value xml:lang="en">Increase kerning</value>
<value xml:lang="sr">Повећајте интервал интерсимволе</value>
<value xml:lang="hr">Povećajte interval intersimvole</value>
<value xml:lang="bs">Povećajte interval intersimvole</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.MakeUp.incrementKern</value> <value>macro:///ePublishing.MakeUp.incrementKern</value>
@ -176,11 +104,7 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="ru">Уменьшить межсимвольный интервал</value> <value xml:lang="ru">Уменьшить межсимвольный интервал</value>
<value xml:lang="fr">Diminuer la chasse</value>
<value xml:lang="en">Decrese kerning</value> <value xml:lang="en">Decrese kerning</value>
<value xml:lang="sr">Смањивање интервал интерсимволе</value>
<value xml:lang="hr">Smanjivanje interval intersimvole</value>
<value xml:lang="bs">Smanjivanje interval intersimvole</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.MakeUp.decrementKern</value> <value>macro:///ePublishing.MakeUp.decrementKern</value>
@ -199,7 +123,7 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/paragraph.svg</value> <value>%origin%/icons/paragraph.png</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -209,7 +133,7 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/links.svg</value> <value>%origin%/icons/links.png</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -219,7 +143,7 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/press_text.svg</value> <value>%origin%/icons/press_text.png</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -230,7 +154,7 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/incChar.svg</value> <value>%origin%/icons/incChar.png</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -240,7 +164,7 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/decChar.svg</value> <value>%origin%/icons/decChar.png</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -250,7 +174,7 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/incKern.svg</value> <value>%origin%/icons/incKern.png</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -260,32 +184,10 @@
</prop> </prop>
<node oor:name="UserDefinedImages"> <node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL"> <prop oor:name="ImageBigURL">
<value>%origin%/icons/decKern.svg</value> <value>%origin%/icons/decKern.png</value>
</prop> </prop>
</node> </node>
</node> </node>
<node oor:name="convert-endnotes" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Endnotes.convertEndnotesExecution</value>
</prop>
<node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL">
<value>%origin%/icons/endnotes.svg</value>
</prop>
</node>
</node>
<node oor:name="balance-tail" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Archive.balanceCurParaLastLine</value>
</prop>
<node oor:name="UserDefinedImages">
<prop oor:name="ImageBigURL">
<value>%origin%/icons/tail.svg</value>
</prop>
</node>
</node>
@ -302,11 +204,7 @@
<node oor:name="journalsMenu" oor:op="replace"> <node oor:name="journalsMenu" oor:op="replace">
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Journals</value> <value xml:lang="en">Journals</value>
<value xml:lang="fr">Magazines</value>
<value xml:lang="ru">Журналы</value> <value xml:lang="ru">Журналы</value>
<value xml:lang="sr">Часописи</value>
<value xml:lang="hr">Časopisi</value>
<value xml:lang="bs">Časopisi</value>
</prop> </prop>
<node oor:name="Submenu"> <node oor:name="Submenu">
<node oor:name="makeUpIssueItem" oor:op="replace"> <node oor:name="makeUpIssueItem" oor:op="replace">
@ -320,10 +218,6 @@
<value/> <value/>
<value xml:lang="en">Compose articles into issue template</value> <value xml:lang="en">Compose articles into issue template</value>
<value xml:lang="ru">Собрать статьи в шаблон выпуска</value> <value xml:lang="ru">Собрать статьи в шаблон выпуска</value>
<value xml:lang="fr">Rassembler les articles dans un modèle de publication</value>
<value xml:lang="sr">Скупити чланке у шаблон за издавање</value>
<value xml:lang="hr">Skupiti članke u šablon za izdavanje</value>
<value xml:lang="bs">Skupiti članke u šablon za izdavanje</value>
</prop> </prop>
</node> </node>
<node oor:name="setLastPageNumbersItem" oor:op="replace"> <node oor:name="setLastPageNumbersItem" oor:op="replace">
@ -338,11 +232,30 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Update articles' last page number</value> <value xml:lang="en">Update articles' last page number</value>
<value xml:lang="fr">Mise à jour du numéro de la dernière page</value>
<value xml:lang="ru">Обновить номера последних страниц статей</value> <value xml:lang="ru">Обновить номера последних страниц статей</value>
<value xml:lang="sr">Ажурирајте бројеве најновијих страница чланака</value> </prop>
<value xml:lang="hr">Ažurirajte brojeve najnovijih stranica članaka</value> </node>
<value xml:lang="bs">Ažurirajte brojeve najnovijih stranica članaka</value> </node>
</node>
</node>
<node oor:name="Submenu">
<node oor:name="booksMenu" oor:op="replace">
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Books</value>
<value xml:lang="ru">Книги</value>
</prop>
<node oor:name="Submenu">
<node oor:name="UniquePageStylesItem" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Books.setUniqPageStyles</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value/>
<value xml:lang="en">Make page styles unique</value>
<value xml:lang="ru">Сделать стили страниц уникальными</value>
</prop> </prop>
</node> </node>
</node> </node>
@ -353,10 +266,6 @@
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Archive</value> <value xml:lang="en">Archive</value>
<value xml:lang="ru">Архив</value> <value xml:lang="ru">Архив</value>
<value xml:lang="fr">Archive</value>
<value xml:lang="sr">Архива</value>
<value xml:lang="hr">Arhiv</value>
<value xml:lang="bs">Arhiva</value>
</prop> </prop>
<node oor:name="Submenu"> <node oor:name="Submenu">
<node oor:name="footnotesRecovery" oor:op="replace"> <node oor:name="footnotesRecovery" oor:op="replace">
@ -368,12 +277,8 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value/> <value/>
<value xml:lang="en">Restore footnotes from text</value> <value xml:lang="en">Recovery footnotes from text</value>
<value xml:lang="ru">Восстановление сносок из текста</value> <value xml:lang="ru">Восстановление сносок из текста</value>
<value xml:lang="fr">Récupération des notes de bas de page dans le texte</value>
<value xml:lang="sr">Враћање фуснота из текста</value>
<value xml:lang="hr">Vraćanje fusnota iz teksta</value>
<value xml:lang="bs">Vraćanje fusnota iz teksta</value>
</prop> </prop>
</node> </node>
<node oor:name="pageBreaksRecovery" oor:op="replace"> <node oor:name="pageBreaksRecovery" oor:op="replace">
@ -385,66 +290,21 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value/> <value/>
<value xml:lang="en">Restore page breaks</value> <value xml:lang="en">PageBreaks recovery</value>
<value xml:lang="ru">Восстановление разрывов страниц</value> <value xml:lang="ru">Восстановление разрывов страниц</value>
<value xml:lang="fr">Restauration des sauts de page</value>
<value xml:lang="sr">Опоравак прекида странице</value>
<value xml:lang="hr">Oporavak prekida stranice</value>
<value xml:lang="bs">Oporavak prekida stranice</value>
</prop> </prop>
</node> </node>
<node oor:name="ConfigureArchiveHeadings" oor:op="replace">
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Archive.configureHeadings</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value/>
<value xml:lang="en">Configure headings</value>
<value xml:lang="ru">Настроить заголовки</value>
<value xml:lang="fr">Configurer les en-têtes</value>
<value xml:lang="sr">Конфигурише заглавља</value>
<value xml:lang="hr">Konfiguriranje naslova</value>
<value xml:lang="bs">Konfiguriranje naslova</value>
</prop>
</node>
</node> </node>
</node> </node>
</node> </node>
<node oor:name="Submenu"> <node oor:name="Submenu">
<node oor:name="uniquePageStyles" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Set unique style for each page</value>
<value xml:lang="ru">Каждой странице уникальный стиль</value>
<value xml:lang="fr">Définir un style unique pour chaque page</value>
<value xml:lang="sr">Свакој страници јединствени стил</value>
<value xml:lang="hr">Svakoj stranici jedinstveni stil</value>
<value xml:lang="bs">Svakoj stranici jedinstveni stil</value>
</prop>
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Books.setUniqPageStyles</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
</node>
<node oor:name="cleanConfigure" oor:op="replace"> <node oor:name="cleanConfigure" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string"> <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value> <value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Configure cleaning</value> <value xml:lang="en">Configure clean</value>
<value xml:lang="fr">Nettoyage</value>
<value xml:lang="ru">Настройка чистки</value> <value xml:lang="ru">Настройка чистки</value>
<value xml:lang="sr">Подешавање чишћења</value>
<value xml:lang="hr">Podešavanje čišćenja</value>
<value xml:lang="bs">Podešavanje čišćenja</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///Redaction.Configuration.ConfigurationDialog</value> <value>macro:///Redaction.Configuration.ConfigurationDialog</value>
@ -459,11 +319,7 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Convert auto hyphenations to manual</value> <value xml:lang="en">Convert auto hyphenations to manual</value>
<value xml:lang="fr">Convertir la césure automatique en césure manuelle</value>
<value xml:lang="ru">Конвертация автоматических переносов в ручные</value> <value xml:lang="ru">Конвертация автоматических переносов в ручные</value>
<value xml:lang="sr">Конверзија аутоматског хифенације у ручни</value>
<value xml:lang="hr">Konverzija automatskog hifenacije u ručni</value>
<value xml:lang="bs">Konverzija automatskog hifenacije u ručni</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Hyphenations.convertHyphInDoc</value> <value>macro:///ePublishing.Hyphenations.convertHyphInDoc</value>
@ -472,36 +328,13 @@
<value>_self</value> <value>_self</value>
</prop> </prop>
</node> </node>
<node oor:name="configurePageStyles" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop>
<prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Page styles batch configuration</value>
<value xml:lang="fr">Personnalisation en série du style des pages</value>
<value xml:lang="ru">Массовая настройка стилей страниц</value>
<value xml:lang="sr">Масовно прилагођавање стилова страница</value>
<value xml:lang="hr">Masovno prilagođavanje stilova stranica</value>
<value xml:lang="bs">Masovno prilagođavanje stilova stranica</value>
</prop>
<prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.PageStyles.pageStylesDialog</value>
</prop>
<prop oor:name="Target" oor:type="xs:string">
<value>_self</value>
</prop>
</node>
<node oor:name="fontsToStyles" oor:op="replace"> <node oor:name="fontsToStyles" oor:op="replace">
<prop oor:name="Context" oor:type="xs:string"> <prop oor:name="Context" oor:type="xs:string">
<value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value> <value>com.sun.star.text.TextDocument,com.sun.star.text.WebDocument</value>
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Convert found fonts to character styles</value> <value xml:lang="en">Convert found fonts to character styles</value>
<value xml:lang="fr">Conversion des polices des styles de caractères</value>
<value xml:lang="ru">Перевод найденных шрифтов в стили символов</value> <value xml:lang="ru">Перевод найденных шрифтов в стили символов</value>
<value xml:lang="sr">Превођење пронађених фонтова у стилове знакова</value>
<value xml:lang="hr">Prevođenje pronađenih fontova u stilove znakova</value>
<value xml:lang="bs">Prevođenje pronađenih fontova u stilove znakova</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///Redaction.Clean.convertFontsToCharStyles</value> <value>macro:///Redaction.Clean.convertFontsToCharStyles</value>
@ -517,10 +350,6 @@
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Footnotes numbering configuration</value> <value xml:lang="en">Footnotes numbering configuration</value>
<value xml:lang="ru">Настройка нумерации сносок</value> <value xml:lang="ru">Настройка нумерации сносок</value>
<value xml:lang="fr">Configuration de la numérotation des notes</value>
<value xml:lang="sr">Подешавање нумерисања фусноте</value>
<value xml:lang="hr">Podešavanje numerisanja fusnote</value>
<value xml:lang="bs">Podešavanje numerisanja fusnote</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Footnotes.openFootNotesDialog</value> <value>macro:///ePublishing.Footnotes.openFootNotesDialog</value>
@ -535,11 +364,7 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Create links in Table Of Contents</value> <value xml:lang="en">Create links in Table Of Contents</value>
<value xml:lang="ru">Создать ссылки в оглавлении</value> <value xml:lang="ru">Создать в ссылки в оглавлении</value>
<value xml:lang="fr">Créer des liens dans la table des matières</value>
<value xml:lang="sr">Креирајте везе у садржају</value>
<value xml:lang="hr">Kreirajte veze u sadržaju</value>
<value xml:lang="bs">Kreirajte veze u sadržaju</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.TOCLinks.makeOutlineLinks</value> <value>macro:///ePublishing.TOCLinks.makeOutlineLinks</value>
@ -554,11 +379,7 @@
</prop> </prop>
<prop oor:name="Title" oor:type="xs:string"> <prop oor:name="Title" oor:type="xs:string">
<value xml:lang="en">Rotate page</value> <value xml:lang="en">Rotate page</value>
<value xml:lang="fr">Rotation de la page</value>
<value xml:lang="ru">Повернуть страницу</value> <value xml:lang="ru">Повернуть страницу</value>
<value xml:lang="sr">Ротирање странице</value>
<value xml:lang="hr">Rotiranje stranice</value>
<value xml:lang="bs">Rotiranje stranice</value>
</prop> </prop>
<prop oor:name="URL" oor:type="xs:string"> <prop oor:name="URL" oor:type="xs:string">
<value>macro:///ePublishing.Album.rotatePageButton</value> <value>macro:///ePublishing.Album.rotatePageButton</value>

View file

@ -5,14 +5,12 @@
<node oor:name="private:resource/toolbar/addon_pro.litvinovg.ePublishing.panel" oor:op="replace"> <node oor:name="private:resource/toolbar/addon_pro.litvinovg.ePublishing.panel" oor:op="replace">
<prop oor:name="UIName" oor:type="xs:string"> <prop oor:name="UIName" oor:type="xs:string">
<value xml:lang="en">ePublishing main panel</value> <value xml:lang="en">ePublishing main panel</value>
<value xml:lang="fr">Panneau principal de ePublishing</value>
<value xml:lang="ru">Основная панель ePublishing</value> <value xml:lang="ru">Основная панель ePublishing</value>
</prop> </prop>
</node> </node>
<node oor:name="private:resource/toolbar/addon_pro.litvinovg.ePublishing.makeuppanel" oor:op="replace"> <node oor:name="private:resource/toolbar/addon_pro.litvinovg.ePublishing.makeuppanel" oor:op="replace">
<prop oor:name="UIName" oor:type="xs:string"> <prop oor:name="UIName" oor:type="xs:string">
<value xml:lang="en">ePublishing make-up</value> <value xml:lang="en">ePublishing make-up</value>
<value xml:lang="fr">Panneau de réglages de ePublishing make-up</value>
<value xml:lang="ru">Панель верстки ePublishing</value> <value xml:lang="ru">Панель верстки ePublishing</value>
</prop> </prop>
</node> </node>

View file

@ -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.epublishing" /> <identifier value="pro.litvinovg.epublishing" />
<version value="0.7.16" /> <version value="0.2.9" />
<platform value="all" /> <platform value="all" />
<display-name> <display-name>
<name lang="ru">Инструменты для создания электронных изданий</name> <name lang="ru">Инструменты для создания электронных изданий</name>
@ -33,8 +33,8 @@
</extension-description> </extension-description>
<icon> <icon>
<default xlink:href="icons/addon_icon.svg" /> <default xlink:href="icons/addon_icon.png" />
<high-contrast xlink:href="icons/addon_icon.svg" /> <high-contrast xlink:href="icons/addon_icon.png" />
</icon> </icon>
</description> </description>

View file

@ -1,19 +1 @@
Tools for publishing in LibreOffice Writer: books, journals, etc. Extenstion for digital publishing in HTML and EPUB with pagingation.
Project Description
Tools for publishing in LibreOffice Writer:
- Create links in table of contents
- Rotate page to album and backwards
- Convert documents exported from InDesing in html
- Compose journal issues from articles
- Convert found fonts to character styles
- Enable advanced mode for Clean and validate extension
- Convert automatic hyphenation to manual
- Set unique page style to each page in document
- Footnotes numbering according to outline levels
- Configure multiple page styles at once
- Shrink text to previous page
- Create bidirectional links
- Replace paragraph style with removal of replaced style (useful for applying styles to documents imported from html)
- Kerning increment and decrement buttons
- Width increment and decrement buttons

View file

@ -1,18 +1,2 @@
Инструменты для подготовки документов к публикации в LibreOffice Writer: книг, журналов и т.д. Расширение для верстки документов в html и epub с сохранением пагинации.
Предоставляет различные инструменты для автоматизации подготовки документа к публикации.
Включает в себя следующие инструменты
- Создание ссылок между содержаниями и заголовками
- Поворот страницы в альбомную ориентацию и обратно
- Конвертация документов, экспортированных из InDesing в html
- Сборка выпусков журналов из набора статей и шаблона выпуска
- Перевод всех найденных шрифтов в стили символов
- Включение экспертного режима для расширения "Чистка и проверка"
- Конвертация автоматических переносов в ручные
- Назначение уникальных стилей всем страницам документа
- Footnotes numbering according to outline levels
- Configure multiple page styles at once
- Сжатие текста, чтобы уместить его на одной странице
- Создание двунаправленных ссылок
- Замена стиля параграфа с удалением заменяемого (полезно при обработке документов, импортированных из html)
- Кнопки для увеличения и уменьшения кернинга
- Кнопки для увеличения и уменьшения масштаба символа по ширине

View file

@ -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="Album" script:language="StarBasic" script:moduleType="normal">Sub albumMark6 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Album" script:language="StarBasic" script:moduleType="normal">Sub albumMark3
End Sub End Sub
Sub rotatePageButton Sub rotatePageButton
@ -23,7 +23,7 @@ Sub makePageAlbum
curPageStyleName = getCurPageStyleName() curPageStyleName = getCurPageStyleName()
findBestAnchor() findBestAnchor()
If checkPageSettings(curPageStyleName) Then If checkPageSettings(curPageStyleName) Then
MsgBox getTranslation(&quot;albumRotationCheckPageSettings&quot;) MsgBox &quot;Проверьте размеры колонтитулов и перезапустите макрос&quot;
Exit Sub Exit Sub
EndIf EndIf
rotatePageClockwise(curPageStyleName) rotatePageClockwise(curPageStyleName)
@ -44,7 +44,7 @@ Sub findBestAnchor()
If curPageStyleName = getCurPageStyleName() Then If curPageStyleName = getCurPageStyleName() Then
Exit Sub Exit Sub
EndIf EndIf
MsgBox getTranslation(&quot;unrecoverableError&quot;) MsgBox &quot;Произошла ошибка. Обратитесь к разработчику.&quot;
End Sub End Sub
Sub undoPageAlbum Sub undoPageAlbum
@ -61,14 +61,14 @@ sub applyPortraitPageStyle(pageStyleName As String)
pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;) pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
pageStyle = pageStyles.getByName(pageStyleName) pageStyle = pageStyles.getByName(pageStyleName)
If NOT pageStyle.IsLandScape Then If NOT pageStyle.IsLandScape Then
MsgBox getTranslation(&quot;albumRotationPageIsAlreadyAlbum&quot;) MsgBox &quot;Страница уже имеет портретную ориентацию. Ничего не делаем. Выходим.&quot;
Exit sub Exit sub
EndIf EndIf
If pageStyles.hasByName(&quot;portrait_&quot; &amp; pageStyleName) Then If pageStyles.hasByName(&quot;portrait_&quot; &amp; pageStyleName) Then
replacePageStyleByPortrait(pageStyleName) replacePageStyleByPortrait(pageStyleName)
removeAlbumFrames(pageStyleName) removeAlbumFrames(pageStyleName)
Else Else
MsgBox getTranslation(&quot;albumRotationBackupStyleNotFound1&quot;) &amp; &quot; portrait_&quot; &amp; pageStyleName &amp; &quot; &quot; &amp; getTranslation(&quot;albumRotationBackupStyleNotFound2&quot;) MsgBox &quot;Стиль страницы с портретной ориентацией portrait_&quot; &amp; pageStyleName &amp; &quot; не был найден. &quot;
EndIf EndIf
End Sub End Sub
@ -161,7 +161,7 @@ Sub rotatePageClockwise(pageStyleName As String)
pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;) pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
pageStyle = pageStyles.getByName(pageStyleName) pageStyle = pageStyles.getByName(pageStyleName)
If pageStyle.IsLandScape Then If pageStyle.IsLandScape Then
MsgBox getTranslation(&quot;albumRotationPageIsAlreadyAlbum&quot;) MsgBox &quot;Страница уже имеет альбомную ориентацию. Ничего не делаем. Выходим.&quot;
Exit sub Exit sub
EndIf EndIf
If NOT pageStyle.IsUserDefined() Then If NOT pageStyle.IsUserDefined() Then
@ -261,24 +261,24 @@ Function checkPageSettings(pageStyleName As String) As Boolean
If pageStyle.HeaderIsDynamicHeight Then If pageStyle.HeaderIsDynamicHeight Then
checkPageSettings = true checkPageSettings = true
pageStyle.HeaderIsDynamicHeight = false pageStyle.HeaderIsDynamicHeight = false
MsgBox getTranslation(&quot;albumRotationDynamicHeaderHeight&quot;) MsgBox &quot;Высота верхнего колонтитула была задана динамической. Отключаем.&quot;
EndIf EndIf
If pageStyle.HeaderDynamicSpacing Then If pageStyle.HeaderDynamicSpacing Then
checkPageSettings = true checkPageSettings = true
pageStyle.HeaderDynamicSpacing = false pageStyle.HeaderDynamicSpacing = false
MsgBox getTranslation(&quot;albumRotationDynamicHeaderOffset&quot;) MsgBox &quot;Отступ верхнего колонтитула от тела страницы был задан динамическим. Отключаем.&quot;
EndIf EndIf
EndIf EndIf
If pageStyle.FooterIsOn Then If pageStyle.FooterIsOn Then
If pageStyle.FooterIsDynamicHeight Then If pageStyle.FooterIsDynamicHeight Then
checkPageSettings = true checkPageSettings = true
pageStyle.FooterIsDynamicHeight = false pageStyle.FooterIsDynamicHeight = false
MsgBox getTranslation(&quot;albumRotationDynamicFooterHeight&quot;) MsgBox &quot;Высота нижнего колонтитула была задана динамической. Отключаем.&quot;
EndIf EndIf
If pageStyle.FooterDynamicSpacing Then If pageStyle.FooterDynamicSpacing Then
checkPageSettings = true checkPageSettings = true
pageStyle.FooterDynamicSpacing = false pageStyle.FooterDynamicSpacing = false
MsgBox getTranslation(&quot;albumRotationDynamicFooterOffset&quot;) MsgBox &quot;Отступ нижнего колонтитула от тела страницы был задан динамическим. Отключаем.&quot;
EndIf EndIf
EndIf EndIf
&apos;Workaround to force Writer reread new page settings &apos;Workaround to force Writer reread new page settings

File diff suppressed because it is too large Load diff

View file

@ -1,302 +1,8 @@
<?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="Books" script:language="StarBasic" script:moduleType="normal">Sub markBooks7 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Books" script:language="StarBasic" script:moduleType="normal">Sub markBooks3
End Sub End Sub
Sub setUniqPageStyles Sub setUniqPageStyles
Dim pageStyleBreaks As Variant
Dim filteredDupStyles As Variant
pageStyleBreaks = getPageStyleBreaks()
Dim pageCount As Integer
Dim pageStyleNames() As String
Dim pageNumbers() As Integer
Dim pageStarts() As Object
Dim pageCounter As Integer
pageStyleNames = pageStyleBreaks(0)
pageNumbers = pageStyleBreaks(1)
pageStarts = pageStyleBreaks(2)
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
pageCount = thiscomponent.currentController.pageCount
Dim fullChain(pageCount - 1) As String
Dim dupNames() As String
Dim dupCounters() As Integer
Dim chainNum As Integer
Dim pageStyleFamily As Object
Dim pageStyle As Object
pageStyleFamily = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
chainNum = 0
For pageCounter = 1 To pageCount
If pageNumbers(chainNum) = pageCounter Then
fullChain(pageCounter - 1) = pageStyleNames(chainNum)
If Ubound(pageNumbers) &gt; chainNum Then
chainNum = chainNum + 1
EndIf
Else
pageStyle = pageStyleFamily.getByName(fullChain(pageCounter - 1 - 1))
fullChain(pageCounter - 1) = pageStyle.FollowStyle
EndIf
Dim dupPosition As Integer
dupPosition = getIndex(dupNames, fullChain(pageCounter - 1) )
If dupPosition = -1 Then
addToArray(dupNames, fullChain(pageCounter - 1))
addToArray(dupCounters, 1)
Else
dupCounters(dupPosition) = dupCounters(dupPosition) + 1
EndIf
Next pageCounter
filteredDupStyles = filterPageStyleNames(dupNames,dupCounters)
filteredDupStyles = createDupNames(filteredDupStyles)
Dim duplicateNames() As String
Dim initNames() As String
Dim dupName As String
duplicateNames = filteredDupStyles(2)
initNames = filteredDupStyles(0)
createPageStyleClones(filteredDupStyles)
chainNum = 0
Dim curName As String
Dim pageStart As Object
Dim prevPageStyle As Object
Dim index As Integer
For pageCounter = 1 To pageCount
If pageNumbers(chainNum) = pageCounter Then
index = getIndex(initNames, pageStyleNames(chainNum))
If index &gt; -1 Then
pageStart = pageStarts(chainNum)
dupName = getDuplicate(duplicateNames(index))
pageStart.pageDescName = dupName
fullChain(pageCounter - 1) = dupName
EndIf
If Ubound(pageNumbers) &gt; chainNum Then
chainNum = chainNum + 1
EndIf
Else
curName = fullChain(pageCounter - 1)
index = getIndex(initNames, curName)
If index &gt; -1 Then
dupName = getDuplicate(duplicateNames(index))
prevPageStyle = pageStyleFamily.getByName(fullChain(pageCounter - 1 - 1))
prevPageStyle.FollowStyle = dupName
fullChain(pageCounter - 1) = dupName
EndIf
EndIf
Next pageCounter
MsgBox getTranslation(&quot;allPagesHaveUniqPageStyle&quot;)
End Sub
Function getDuplicate(duplicateNames() As String) As String
Dim index As Integer
Dim dupName As String
For index = LBound(duplicateNames) To Ubound(duplicateNames)
dupName = duplicateNames(index)
If dupName &lt;&gt; &quot;&quot; Then
getDuplicate = dupName
duplicateNames(index) = &quot;&quot;
Exit Function
EndIf
Next index
End Function
Sub createPageStyleClones(filteredDupStyles As Variant)
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
Dim oViewCursor As Object
Dim initialNames() As String
Dim dupNames() As Variant
Dim initialName As String
Dim style As Object
initialNames = filteredDupStyles(0)
dupNames = filteredDupStyles(2)
Dim pageStyleFamily As Object
pageStyleFamily = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.goToEnd(False)
Dim index As Integer
Dim dupInedx As Integer
insertPageBreak()
Dim duplicates() As String
Dim duplicate As String
Dim pageStyleOriginals As Integer
Dim newStyle As Object
For index = LBound(initialNames) To Ubound(initialNames)
initialName = initialNames(index)
style = pageStyleFamily.getByName(initialName)
oViewCursor.PageDescName = style.Name
duplicates = dupNames(index)
For dupIndex = LBound(duplicates) To Ubound(duplicates)
duplicate = duplicates(dupIndex)
createPageStyleByExample(duplicate)
newStyle = pageStyleFamily.getByName(duplicate)
newStyle.FollowStyle = style.Name
Next
Next
backspace
End Sub
Function createDupNames(dupStyles As Variant) As Variant
Dim newDupStyles(2) As Variant
Dim counters() As Integer
Dim initNames() As String
Dim initName As String
initNames = dupStyles(0)
counters = dupStyles(1)
Dim newDupNames() As Variant
Dim i As Integer
Dim nameIt As Integer
For i = LBound(counters) To UBound(counters)
ReDim newNames(counters(i) - 1) As String
addToArray(newDupNames, newNames)
initName = initNames(i)
For nameIt = LBound(newNames) To UBound(newNames)
newNames(nameIt) = createDupName(initName, newDupNames)
newDupNames(UBound(newDupNames)) = newNames
Next nameIt
Next i
newDupStyles(0) = initNames
newDupStyles(1) = counters
newDupStyles(2) = newDupNames
createDupNames = newDupStyles
End Function
Function createDupName(initName As String, newDupNames As Variant )
Dim pageStyleFamily As Object
pageStyleFamily = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
Dim proposeName As String
Dim i As Integer
Dim postfix As String
Dim prefixName As String
prefixName = getPrefixName(initName)
For i = 1 To 10000
proposeName = prefixName &amp; i
If NOT pageStyleFamily.hasByName(proposeName) And Not IsInArrays(newDupNames, proposeName) Then
createDupName = proposeName
Exit Function
EndIf
Next i
End Function
Function getPrefixName(initName As String) As String
Dim num As Long
Dim tmpName As String
tmpName = Trim(initName)
If tmpName = &quot;&quot; Then
getPrefixName = &quot;&quot;
Exit Function
EndIf
num = Asc(Right(tmpName, 1))
Do while num &gt;= 48 AND num &lt;= 57
tmpName = Trim(Left(tmpName, Len(tmpName) - 1))
If tmpName = &quot;&quot; Then
getPrefixName = &quot;&quot;
Exit Function
EndIf
num = Asc(Right(tmpName, 1))
Loop
If tmpName = &quot;Статья&quot; Then
Dim result As String
result = Trim(initName) &amp; &quot; стр.&quot;
getPrefixName = result
Exit Function
EndIf
If Len(tmpName) &gt; 4 AND Right(tmpName,4) = &quot;стр.&quot; Then
getPrefixName = tmpName
Exit Function
EndIf
getPrefixName = tmpName &amp; &quot; &quot;
End Function
Function IsInArrays(newDupNames As Variant, proposeName As String) As Boolean
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
Dim i As Integer
Dim names() As String
For i = LBound(newDupNames) To Ubound(newDupNames)
names = newDupNames(i)
If getIndex(names, proposeName) &gt; -1 Then
IsInArrays = True
Exit Function
EndIf
Next i
IsInArrays = False
End Function
Function filterPageStyleNames(names() As String, counters() As Integer) As Variant
Dim i As Integer
Dim filteredNames() As String
Dim filteredCounters() As Integer
For i=Lbound(counters) To Ubound(counters)
If counters(i) &gt; 1 Then
addToArray(filteredNames, names(i))
addToArray(filteredCounters, counters(i))
EndIf
Next i
Dim filteredDups(1) As Variant
filteredDups(0) = filteredNames
filteredDups(1) = filteredCounters
filterPageStyleNames = filteredDups
End Function
Function getPageStyleBreaks()
Dim enum1 As Object
Dim enum1Element As Object
Dim pageStyleName As String
Dim pageNumber As Integer
Dim pageName As String
Dim oViewCursor As Object
Dim anchor As Object
Dim oSavePosition As Object
Dim pageStyleBreaks(2) As Variant
Dim pageStyleNames() As String
Dim pageNumbers() As Integer
Dim pageStarts() As Object
oViewCursor = ThisComponent.CurrentController.getViewCursor()
enum1 = ThisComponent.Text.createEnumeration()
&apos; Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
Dim i As Integer
i = 0
Dim first As Boolean
first = true
While enum1.hasMoreElements
enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) OR enum1Element.supportsService(&quot;com.sun.star.text.TextTable&quot;) Then
&apos; MRi enum1Element
If NOT isEmpty(enum1Element.PageDescName) And enum1Element.PageDescName &lt;&gt; &quot;&quot; Then
pageStyleName = enum1Element.PageStyleName
addToArray(pageStyleNames(),pageStyleName)
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
oViewCursor.goToRange(enum1Element.Anchor,false)
ElseIf enum1Element.supportsService(&quot;com.sun.star.text.TextTable&quot;) Then
oViewCursor.goToRange(enum1Element.getCellByPosition(0,0).getStart(),false)
EndIf
addToArray(pageNumbers(),CInt(oViewCursor.Page))
addToArray(pageStarts(),enum1Element)
first = false
ElseIf first Then
addToArray(pageStyleNames(), enum1Element.PageStyleName)
addToArray(pageNumbers(),1)
addToArray(pageStarts(),enum1Element)
first = false
EndIf
EndIf
i = i + 1
Wend
pageStyleBreaks(0) = pageStyleNames
pageStyleBreaks(1) = pageNumbers
pageStyleBreaks(2) = pageStarts
getPageStyleBreaks = pageStyleBreaks
End Function
Sub setUniqPageStylesDEPRECATED
Dim prevPageName As String Dim prevPageName As String
Dim firstPageName As String Dim firstPageName As String
Dim pageName As String Dim pageName As String
@ -362,7 +68,7 @@ Sub setUniqPageStylesDEPRECATED
End Sub End Sub
Function hasPageStyleWith(pageStyleName As String) As Boolean Function hasPageStyleWith(pageStyleName)
Dim enum1 As Object Dim enum1 As Object
Dim enum1Element As Object Dim enum1Element As Object
Dim curPage As String Dim curPage As String
@ -387,7 +93,7 @@ Function hasPageStyleWith(pageStyleName As String) As Boolean
hasPageStyleWith = false hasPageStyleWith = false
End Function End Function
Function findFirstPageNumberWithStyle(pageStyleName As String) As Integer Function findFirstPageNumberWithStyle(pageStyleName)
Dim enum1 As Object Dim enum1 As Object
Dim enum1Element As Object Dim enum1Element As Object
Dim curPage As String Dim curPage As String
@ -396,7 +102,6 @@ Function findFirstPageNumberWithStyle(pageStyleName As String) As Integer
Dim oViewCursor As Object Dim oViewCursor As Object
Dim anchor As Object Dim anchor As Object
Dim oSavePosition As Object Dim oSavePosition As Object
Dim curPageStyleName As String
oViewCursor = ThisComponent.CurrentController.getViewCursor() oViewCursor = ThisComponent.CurrentController.getViewCursor()
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor) oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
enum1 = ThisComponent.Text.createEnumeration() enum1 = ThisComponent.Text.createEnumeration()
@ -418,27 +123,4 @@ Function findFirstPageNumberWithStyle(pageStyleName As String) As Integer
Wend Wend
findFirstPageNumberWithStyle = -1 findFirstPageNumberWithStyle = -1
End Function End Function
sub testStyleCopy
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = &quot;Param&quot;
args1(0).Value = &quot;alb2&quot;
args1(1).Name = &quot;Family&quot;
args1(1).Value = 8
dispatcher.executeDispatch(document, &quot;.uno:StyleNewByExample&quot;, &quot;&quot;, 0, args1())
end sub
</script:module> </script:module>

View file

@ -1,466 +0,0 @@
<?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="Endnotes" script:language="StarBasic" script:moduleType="normal">Global Const endnoteFieldPrefix = &quot;custom_endnote_&quot;
Global Const endnoteInTextAnchorSuffix = &quot;-text_anchor&quot;
Global Const endnoteInBodyAnchorSuffix = &quot;-body_anchor&quot;
Sub convertEndnotesExecution
Dim oSelections As Object
Dim oAnchor1 As Object
Dim oAnchor2 As Object
Dim oAnchor1Name As String
Dim oAnchor2Name As String
Dim foundEndNotes() As Object
Dim textSelection As Object
Dim nativeEndnotesCounter As Integer
Dim customEndnotesCounter As Integer
If IsNull(ThisComponent) Then
MsgBox getTranslation(&quot;something weird happened error text&quot;)
Exit Sub
End If
oSelections = ThisComponent.getCurrentSelection()
If NOT oSelections.supportsService(&quot;com.sun.star.text.TextRanges&quot;) Then
MsgBox getTranslation(&quot;EndnotesNotFound&quot;)
Exit Sub
End If
objectsCount = oSelections.getCount()
If objectsCount &gt; 1 Then
MsgBox getTranslation(&quot;too much selections&quot;)
Exit Sub
End If
textSelection = oSelections.getByIndex(0)
foundEndNotes() = findEndNotesInSelection(textSelection)
nativeEndnotesCounter = UBound(foundEndNotes(0))
customEndnotesCounter = UBound(foundEndNotes(1))
If (nativeEndnotesCounter = -1 And customEndnotesCounter = -1 ) Then
MsgBox getTranslation(&quot;EndnotesNotFound&quot;)
Exit Sub
EndIf
If ( customEndnotesCounter = -1 ) Then
&apos;only native found window convert to custom?
&apos;Window Select paragraph for endnotes output or cancel
runEndnotesConversionDialog(foundEndNotes(0))
Exit Sub
EndIf
If (nativeEndnotesCounter = -1 ) Then
&apos;only custom endnotes found. Window convert to native?
runEndnotesCustomToNativeDialog(foundEndNotes(1))
Exit Sub
EndIf
&apos;both custom and native endnotes found
&apos;convert to custom all or
&apos;convert to native
runDualEndnotesDialog(foundEndNotes(0),foundEndNotes(1))
End Sub
Sub runDualEndnotesDialog(nativeEndNotes() As Object,customEndnotes() As Object)
Dim dialog As Object
waitingForDialog = true
dialog = notModalDialog(&quot;EndnotesConversion&quot;)
dialog.getControl(&quot;found&quot;).SetText(getTranslation(&quot;EndnotesNativeDialogFound&quot;) &amp; CStr(UBound(nativeEndNotes)+1))
dialog.getControl(&quot;found2&quot;).SetText(getTranslation(&quot;EndnotesCustomDialogFound&quot;) &amp; CStr(UBound(customEndnotes)+1))
dialog.getControl(&quot;found2&quot;).Model.EnableVisible = TRUE
dialog.getControl(&quot;description&quot;).SetText(getTranslation(&quot;EndnotesConversionTwoOptions&quot;))
dialog.getControl(&quot;cancel&quot;).Label = getTranslation(&quot;buttonCancel&quot;)
dialog.getControl(&quot;start&quot;).Label = getTranslation(&quot;toNativeEndnotes&quot;)
dialog.getControl(&quot;option2&quot;).Label = getTranslation(&quot;toCustomEndnotes&quot;)
dialog.getControl(&quot;option2&quot;).Model.EnableVisible = TRUE
dialog.setvisible(true)
Do While waitingForDialog
If dialog.getControl(&quot;cancel&quot;).model.state = 1 then
exit Do
EndIf
If dialog.getControl(&quot;start&quot;).model.state = 1 then
convertCustomEndnotesToNative(customEndnotes)
exit Do
EndIf
If dialog.getControl(&quot;option2&quot;).model.state = 1 then
convertEndnotesToCustom(nativeEndNotes)
exit Do
EndIf
wait (100)
Loop
dialog.dispose
End Sub
Sub runEndnotesCustomToNativeDialog(customEndnotes() As Object)
Dim dialog As Object
waitingForDialog = true
dialog = notModalDialog(&quot;EndnotesConversion&quot;)
dialog.getControl(&quot;found&quot;).SetText(getTranslation(&quot;EndnotesCustomDialogFound&quot;) &amp; CStr(UBound(customEndnotes)+1))
dialog.getControl(&quot;description&quot;).SetText(getTranslation(&quot;EndnotesCustomConversionOption&quot;))
dialog.getControl(&quot;cancel&quot;).Label = getTranslation(&quot;buttonCancel&quot;)
dialog.getControl(&quot;start&quot;).Label = getTranslation(&quot;buttonOk&quot;)
dialog.setvisible(true)
Do While waitingForDialog
If dialog.getControl(&quot;cancel&quot;).model.state = 1 then
exit Do
EndIf
If dialog.getControl(&quot;start&quot;).model.state = 1 then
convertCustomEndnotesToNative(customEndnotes)
exit Do
EndIf
wait (100)
Loop
dialog.dispose
End Sub
Sub convertCustomEndnotesToNative(foundEndnotes() As Object)
Dim i As Long
Dim bodyAnchorName As String
Dim textAnchorName As String
Dim bookmarksName As String
Dim bookmarks As Object
bookmarksName = ThisComponent.Links.ElementNames(6)
bookmarks = ThisComponent.Links.getByName(bookmarksName)
For i = LBound(foundEndnotes) To UBound(foundEndnotes)
bodyAnchorName = getBodyAnchorName(foundEndnotes(i))
textAnchorName = getTextAnchorName(bodyAnchorName)
If bookmarks.hasByName(bodyAnchorName) And bookmarks.hasByName(textAnchorName) Then
convertLinksToEndnote(bodyAnchorName,textAnchorName)
EndIf
Next i
End Sub
Function getBodyAnchorName(textRange As Object) As String
getBodyAnchorName = &quot;&quot;
If (Len(textRange.HyperLinkURL) &gt; 0) Then
getBodyAnchorName = Right(textRange.HyperLinkURL,Len(textRange.HyperLinkURL)-1)
EndIf
End Function
Function getTextAnchorName(bodyAnchorName As String) As String
getTextAnchorName = &quot;&quot;
If Len(bodyAnchorName) &gt; Len(endnoteInBodyAnchorSuffix) Then
getTextAnchorName = Left(bodyAnchorName,Len(bodyAnchorName)-Len(endnoteInBodyAnchorSuffix)) &amp; endnoteInTextAnchorSuffix
EndIf
End Function
Sub convertLinksToEndnote(forwardLink As String,backwardLink As String)
Dim bookMarkName As String
bookmarkName = ThisComponent.Links.ElementNames(6)
Dim bookmarks As Object
bookmarks = ThisComponent.Links.getByName(bookmarkName)
Dim forward As Object
Dim backward As Object
Dim oViewCursor As Object
Dim footNoteSign As String
oViewCursor = ThisComponent.CurrentController.getViewCursor()
Dim oTextCursor As Object
If NOT bookmarks.hasByName(forwardLink) OR NOT bookmarks.hasByName(backwardLink) Then
exit sub
EndIf
forward = bookmarks.getByName(forwardLink)
backward = bookmarks.getByName(backwardLink)
footNoteSign = forward.Anchor.String
oViewCursor.goToRange(forward.Anchor,false)
SendRM
SendRM
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
goToEndOfEndnoteBody(oTextCursor)
oTextCursor.goToRange(oViewCursor,true)
oViewCursor.goToRange(oTextCursor,true)
unoCut()
SendRM
oViewCursor.goToRange(backward.Anchor,false)
removeEndnoteSignInText()
createEndnote
unoPaste()
oViewCursor.getText.setLabel(footNoteSign)
forward.dispose()
backward.dispose()
End Sub
Sub goToEndOfEndnoteBody(oTextCursor As Object)
Dim position As Object
position = oTextCursor.End
oTextCursor.goToEndOfParagraph(false)
oTextCursor.goRight(1,false)
If oTextCursor.ParaStyleName &lt;&gt; &quot;Endnote&quot; OR oTextCursor.CharStyleName = &quot;Endnote Symbol&quot; Then
oTextCursor.goLeft(1,false)
Exit Sub
EndIf
&apos;Got to the end of the document
If oTextCursor.Text.compareRegionEnds(position,oTextCursor.End) = 0 Then
Exit Sub
EndIf
goToEndOfEndnoteBody(oTextCursor)
End Sub
Sub removeEndnoteSignInText()
Dim oViewCursor As Object
Dim character As String
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.String = &quot;&quot;
oViewCursor.HyperLinkURL=&quot;&quot;
End Sub
sub createEndnote
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
dispatcher.executeDispatch(document, &quot;.uno:InsertEndnote&quot;, &quot;&quot;, 0, Array())
end Sub
Sub runEndnotesConversionDialog(foundEndNotes As Variant)
Dim dialog As Object
waitingForDialog = true
dialog = notModalDialog(&quot;EndnotesConversion&quot;)
dialog.getControl(&quot;found&quot;).SetText(getTranslation(&quot;EndnotesNativeDialogFound&quot;) &amp; CStr(UBound(foundEndNotes)+1))
dialog.getControl(&quot;description&quot;).SetText(getTranslation(&quot;EndnotesNativeDialogDescriptionSelect&quot;))
dialog.getControl(&quot;cancel&quot;).Label = getTranslation(&quot;buttonCancel&quot;)
dialog.getControl(&quot;start&quot;).Label = getTranslation(&quot;buttonOk&quot;)
dialog.setvisible(true)
Do While waitingForDialog
If dialog.getControl(&quot;cancel&quot;).model.state = 1 then
exit Do
EndIf
If dialog.getControl(&quot;start&quot;).model.state = 1 then
convertEndnotesToCustom(foundEndNotes)
exit Do
EndIf
wait (100)
Loop
dialog.dispose
End Sub
Sub convertEndnotesToCustom(foundEndNotes As Variant)
Dim oViewCursor As Object
Dim outputPosition As Object
Dim endnoteSigns() As String
Dim fieldPrefix As String
Dim i As Integer
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.goToStartOfLine(false)
outputPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
endnoteSigns = getEndnoteSigns(foundEndNotes)
fieldPrefix = createEndnoteFieldPrefix()
For i = LBound(foundEndNotes) To Ubound(foundEndNotes)
convertNativeEndnoteToCustom(endnoteSigns(i), foundEndNotes(i),outputPosition,fieldPrefix, i)
Next i
End Sub
Function createEndnoteFieldPrefix As String
Dim names() As String
Dim prefix As String
names = ThisComponent.getTextFieldMasters().getElementNames()
prefix = endnoteFieldPrefix &amp; RND_String() &amp; &quot;_&quot;
If NOT startsWithInArray(prefix, names) Then
createEndnoteFieldPrefix = prefix
Exit Function
EndIf
createEndnoteFieldPrefix = prefix
End Function
Function startsWithInArray(prefix As String, names As Variant) As Boolean
Dim i As Long
For i = LBound(names) To Ubound(names)
If InStr(names(i), &quot;com.sun.star.text.fieldmaster.User.&quot; &amp; prefix) = 1 Then
startsWithInArray = true
Exit Function
EndIf
Next i
startsWithInArray = false
End Function
Sub convertNativeEndnoteToCustom(sign As String, nativeEndNoteTextRange As Object,outputPosition As Object, fieldPrefix As String, num As Integer)
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
Dim oViewCursor As Object
Dim oTextCursor As Object
Dim endNote As Object
Dim anchorInBody As Object
Dim anchorInText As Object
Dim bodyAnchorName As String
Dim textAnchorName As String
endNote = nativeEndNoteTextRange.Footnote
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.goToRange(nativeEndNoteTextRange.Footnote.Text.Start,false)
oViewCursor.goToRange(nativeEndNoteTextRange.Footnote.Text.End,true)
If oViewCursor.String = &quot;&quot; Then
oViewCursor.String = &quot; &quot;
EndIf
unoCut()
oViewCursor.goToRange(outputPosition,false)
getEndnotePara()
oViewCursor.ParaStyleName = &quot;Endnote&quot;
anchorInBody = createEndnoteSign(outputPosition, sign, fieldPrefix &amp; num, true)
addEndnoteSpacer(fieldPrefix)
unoPaste()
outputPosition = oViewCursor.End
oViewCursor.goToRange(nativeEndNoteTextRange,false)
endNote.dispose()
anchorInText = createEndnoteSign(oViewCursor, sign, fieldPrefix &amp; num, false)
bodyAnchorName = fieldPrefix &amp; num &amp; endnoteInBodyAnchorSuffix
textAnchorName = fieldPrefix &amp; num &amp; endnoteInTextAnchorSuffix
anchorInBody.goRight(1,true)
anchorInText.goRight(1,true)
createAnchor(anchorInBody, bodyAnchorName )
createAnchor(anchorInText,textAnchorName )
createLink(anchorInBody,anchorInBody.String, textAnchorName)
createLink(anchorInText,anchorInText.String, bodyAnchorName)
End Sub
Sub getEndnotePara()
Dim oViewCursor As Object
Dim oTextCursor As Object
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor.Start)
oTextCursor.gotoStartOfParagraph(false)
oTextCursor.gotoEndOfParagraph(true)
If Len(oTextCursor.String) &gt; 0 Then
oViewCursor.Text.insertControlCharacter(oViewCursor.End,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
EndIf
End Sub
Function createEndnoteSign(cursor As Object,sign As String,fieldName As String, inBody As Boolean) As Object
Dim oField As Object &apos;Field to insert
Dim oFieldMaster As Object
Dim oTextCursor As Object
Dim oMasters As Object
oTextCursor = cursor.Text.createTextCursorByRange(cursor.Start)
If inBody Then
oTextCursor.CharStyleName = &quot;Endnote Symbol&quot;
Else
oTextCursor.CharStyleName = &quot;Endnote anchor&quot;
EndIf
oField = ThisComponent.createInstance(&quot;com.sun.star.text.textfield.User&quot;)
oMasters = ThisComponent.getTextFieldMasters()
If oMasters.hasByName(&quot;com.sun.star.text.FieldMaster.User&quot; &amp; &quot;.&quot; &amp; fieldName) Then
oFieldMaster = oMasters.getByName(&quot;com.sun.star.text.FieldMaster.User&quot; &amp; &quot;.&quot; &amp; fieldName)
oFieldMaster.Name = fieldName
oFieldMaster.Content = sign
Else
oFieldMaster = ThisComponent.createInstance(&quot;com.sun.star.text.FieldMaster.User&quot;)
oFieldMaster.Name = fieldName
oFieldMaster.Content = sign
EndIf
oField.attachTextFieldMaster(oFieldMaster)
oTextCursor.Text.insertTextContent(oTextCursor, oField, False)
oTextCursor.CharStyleName = &quot;Standard&quot;
oTextCursor.goLeft(1,false)
createEndnoteSign = oTextCursor
End Function
Sub addEndnoteSpacer(fieldPrefix As String)
Dim oViewCursor As Object
oViewCursor = ThisComponent.CurrentController.getViewCursor()
insertUserField(oViewCursor,fieldPrefix &amp; &quot;spacer&quot;,&quot; &quot;)
End Sub
Function getEndnoteSigns(foundEndNotes As Variant) As Variant
Dim i As Integer
Dim signs() As String
For i = LBound(foundEndNotes) To Ubound(foundEndNotes)
AddToArray(signs, foundEndNotes(i).String)
Next i
getEndnoteSigns = signs
End Function
Function notModalDialog(dialogName As String) As Variant
Dim windowProvider As Object
Dim containerWindow As Object
Dim handler As Object
Dim dialogUrl As String
Dim dialog As Object
containerWindow = ThisComponent.getCurrentController().getFrame().getContainerWindow()
dialogUrl = &quot;vnd.sun.star.script:ePublishing.&quot; &amp; dialogName &amp; &quot;?location=application&quot;
windowProvider = CreateUnoService(&quot;com.sun.star.awt.ContainerWindowProvider&quot;)
dialog = windowProvider.createContainerWindow(dialogUrl, &quot;&quot;, containerWindow, handler)
notModalDialog = dialog
End Function
Function findEndNotesInSelection(textSelection) As Variant
Dim nativeEndNotes() As Object
Dim customEndNotes() As Object
Dim outerArray() As Object
findEndNotesInSelection = Array()
Dim enum1Element As Object
Dim cellEnumElement As Object
Dim enum1 As Object
Dim enum2 As Object
Dim curNum As Integer
Dim i As Integer
Dim cell As Object
Dim cellEnum As Object
enum1 = textSelection.createEnumeration
While enum1.hasMoreElements
enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
findEndNotesInParagraph(enum1Element, nativeEndNotes, customEndNotes)
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))
cellEnum = cell.getText().createEnumeration()
While cellEnum.hasMoreElements
cellEnumElement = cellEnum.nextElement
If cellEnumElement.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
findEndNotesInParagraph(cellEnumElement, nativeEndNotes, customEndNotes)
EndIf
Wend
Next i
EndIf
Wend
addToArray(outerArray, nativeEndNotes)
addToArray(outerArray, customEndNotes)
findEndNotesInSelection = outerArray
End Function
Sub findEndNotesInParagraph(enum1Element As Object,nativeEndNotes As Variant, customEndNotes As Variant)
Dim textPortions As Object
Dim thisPortion As Object
Dim footnoteText As Object
Dim label As String
Dim labelNum As Long
Dim bookmarkName As String
If enum1Element.OutlineLevel = level Then
curNum = 1
EndIf
textPortions = enum1Element.createEnumeration
While textPortions.hasMoreElements
thisPortion = textPortions.nextElement
If isTargetNote(thisPortion,1) Then
AddToArray(nativeEndNotes, thisPortion)
ElseIf isCustomEndnote(thisPortion) Then
AddToArray(customEndNotes, thisPortion)
EndIf
Wend
End Sub
Function isCustomEndnote(portion As Object) As Boolean
If InStr(portion.HyperLinkURL, &quot;#&quot; &amp; endnoteFieldPrefix) = 1 And portion.String &lt;&gt; &quot;&quot; Then
If InStr(portion.HyperLinkURL, endnoteInBodyAnchorSuffix) &gt; 0 Then
isCustomEndnote = true
Exit Function
EndIf
EndIf
isCustomEndnote = false
End Function
</script:module>

View file

@ -1,12 +0,0 @@
<?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="EndnotesConversion" dlg:left="199" dlg:top="0" dlg:width="160" dlg:height="84" dlg:closeable="true" dlg:moveable="true">
<dlg:bulletinboard>
<dlg:text dlg:id="description" dlg:tab-index="0" dlg:left="8" dlg:top="28" dlg:width="147" dlg:height="36" dlg:value="Для вывода концевых сносок установите курсор в целевом параграфе и нажмите Конвертация" dlg:align="center" dlg:multiline="true"/>
<dlg:text dlg:id="found" dlg:tab-index="1" dlg:left="8" dlg:top="3" dlg:width="145" dlg:height="8" dlg:value="Найдено концевых сносок" dlg:align="center"/>
<dlg:button dlg:id="cancel" dlg:tab-index="2" dlg:left="2" dlg:top="69" dlg:width="50" dlg:height="13" dlg:value="Отмена" dlg:toggled="1"/>
<dlg:button dlg:id="start" dlg:tab-index="3" dlg:left="107" dlg:top="69" dlg:width="50" dlg:height="13" dlg:value="Конвертация" dlg:toggled="1"/>
<dlg:button dlg:id="option2" dlg:tab-index="4" dlg:visible="false" dlg:left="55" dlg:top="69" dlg:width="50" dlg:height="13" dlg:value="Вариант2" dlg:toggled="1"/>
<dlg:text dlg:id="found2" dlg:tab-index="5" dlg:visible="false" dlg:left="8" dlg:top="14" dlg:width="145" dlg:height="8" dlg:value="Найдено концевых сносок" dlg:align="center"/>
</dlg:bulletinboard>
</dlg:window>

View file

@ -1,30 +1,12 @@
<?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="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark8 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark1
End Sub End Sub
Sub openFootNotesDialog Sub openFootNotesDialog
Dim dialog As Object Dim dialog As Object
DialogLibraries.LoadLibrary(&quot;ePublishing&quot;) DialogLibraries.LoadLibrary(&quot;ePublishing&quot;)
dialog = CreateUnoDialog(DialogLibraries.ePublishing.FootnotesConfig) dialog = CreateUnoDialog(DialogLibraries.ePublishing.FootnotesConfig)
dialog.getControl(&quot;buttonOK&quot;).Label = getTranslation(&quot;buttonOk&quot;)
dialog.getControl(&quot;buttonCancel&quot;).Label = getTranslation(&quot;buttonCancel&quot;)
dialog.getControl(&quot;configText1&quot;).setText(getTranslation(&quot;configText1&quot;))
dialog.getControl(&quot;configText2&quot;).setText(getTranslation(&quot;configText2&quot;))
dialog.getControl(&quot;configText3&quot;).setText(getTranslation(&quot;configText3&quot;))
dialog.getControl(&quot;configText4&quot;).setText(getTranslation(&quot;configText4&quot;))
dialog.getControl(&quot;configText5&quot;).setText(getTranslation(&quot;configText5&quot;))
dialog.getControl(&quot;notesTypeLabel&quot;).setText(getTranslation(&quot;FootnotesConfigDialogNotesTypeLabel&quot;))
dialog.getControl(&quot;PerPageRangeLabel&quot;).setText(getTranslation(&quot;FootnotesConfigDialogNotesPerPageRangeLabel&quot;))
dialog.getControl(&quot;groupByPages&quot;).Model.Label = getTranslation(&quot;FootnotesConfigDialogNotesPerPage&quot;)
dialog.getControl(&quot;groupByHeadings&quot;).Model.Label = getTranslation(&quot;FootnotesConfigDialogNotesByHeadingsLabel&quot;)
dialog.Title = getTranslation(&quot;footnotesConfigDialogTitle&quot;)
Dim nCount As Integer
nCount = dialog.getControl(&quot;lb_notes_types&quot;).getItemCount()
dialog.getControl(&quot;lb_notes_types&quot;).addItem( getTranslation(&quot;FootnotesConfigDialogFootnotesName&quot;), nCount )
dialog.getControl(&quot;lb_notes_types&quot;).addItem( getTranslation(&quot;FootnotesConfigDialogEndnotesName&quot;), nCount + 1 )
dialog.getControl(&quot;lb_notes_types&quot;).selectItemPos( 0, True )
dialog.setVisible(true) dialog.setVisible(true)
Select Case dialog.Execute() Select Case dialog.Execute()
Case 1 Case 1
@ -34,137 +16,55 @@ Sub openFootNotesDialog
dialog.dispose() dialog.dispose()
End Sub End Sub
Sub setFootnotesNumberingFrom(dialog As Object) Sub setFootnotesNumberingFrom(dialog)
Dim statusIndicator as Object Dim statusIndicator as Object
Dim targetLevel As Integer Dim targetLevel As Integer
Dim stringLevelInput As String
Dim stringPageRangeInput As String
Dim noteType As Integer
statusIndicator = ThisComponent.getCurrentController.statusIndicator statusIndicator = ThisComponent.getCurrentController.statusIndicator
dialog.setVisible(false) dialog.setVisible(false)
doNotTrack doNotTrack
stringLevelInput = dialog.getControl(&quot;level&quot;).getText targetLevel = dialog.getControl(&quot;level&quot;).Value
stringPageRangeInput = dialog.getControl(&quot;pageRange&quot;).getText
noteType = dialog.getControl(&quot;lb_notes_types&quot;).getSelectedItemPos()
If (stringLevelInput &lt;&gt; &quot;&quot;) Then
targetLevel = CInt(stringLevelInput)
If targetLevel &gt; -1 AND targetLevel &lt; 11 Then If targetLevel &gt; -1 AND targetLevel &lt; 11 Then
statusIndicator.Start(getTranslation(&quot;statusNumberingInProcess&quot;),100) statusIndicator.Start(&quot;Нумерую сноски&quot;,100)
setFootnotesNumberingLevel(targetLevel,noteType) setFootnotesNumberingLevel(targetLevel)
Else Else
MsgBox getTranslation(&quot;numberingInputOutOfRange&quot;) MsgBox &quot;Значение уровня заголовков вне допустимого диапазона. Введите число от 0 до 10.&quot;
EndIf
EndIf
If (stringPageRangeInput &lt;&gt; &quot;&quot;) Then
Dim pageNums() As Integer
getPageNumsFrom(stringPageRangeInput, pageNums())
statusIndicator.Start(getTranslation(&quot;statusNumberingInProcess&quot;),100)
setNotesPaginatedNumbering(noteType, pageNums())
EndIf EndIf
statusIndicator.end() statusIndicator.end()
MsgBox getTranslation(&quot;statusNumberingFinished&quot;)
End Sub End Sub
Sub setNotesPaginatedNumbering(noteType As Integer, pageNums() As Integer) Sub setFootnotesNumberingLevel(level)
Dim allNotes As Object
Dim statusIndicator as Object
Dim i As Integer
Dim curNote As Object
Dim curPage As String
Dim prevPage As String
Dim curNum As Integer
Dim notesToValidate() As Object
statusIndicator = ThisComponent.getCurrentController.statusIndicator
statusIndicator.Start(getTranslation(&quot;statusNumberingInProcess&quot;),30)
curNum = 1
prevPage = &quot;&quot;
If noteType = 0 Then
allNotes = thisComponent.FootNotes
Else
allNotes = thisComponent.EndNotes
EndIf
For i = 0 to allNotes.Count -1
curNote = allNotes.getByIndex(i)
curPage = getPageNumberVCurs(curNote.Anchor)
If ( IsInArray(pageNums, CInt(curPage) ) ) Then
If (curPage &lt;&gt; prevPage) Then
curNum = 1
prevPage = curPage
EndIf
label = curNote.getLabel
If label = &quot;&quot; Or IsNumeric(label) Then
curNote.setLabel(CStr(curNum))
addToArray(notesToValidate,curnote)
curNum = curNum + 1
EndIf
EndIf
Next i
&apos;Second pass in case layout has changed
For i = 0 To Ubound(notesToValidate)
curNote = notesToValidate(i)
curPage = getPageNumberVCurs(curNote.Anchor)
If (curPage &lt;&gt; prevPage) Then
curNum = 1
prevPage = curPage
EndIf
curNote.setLabel(CStr(curNum))
curNum = curNum + 1
Next i
statusIndicator.end()
End Sub
Sub setFootnotesNumberingLevel(level As Integer,noteType As Integer)
Dim enum1Element As Object Dim enum1Element As Object
Dim enum1 As Object Dim enum1 As Object
Dim enum2 As Object Dim enum2 As Object
Dim thisPortion As Object
Dim curNum As Integer Dim curNum As Integer
Dim footnoteText As Object
Dim label As String
Dim labelNum As Integer
Dim i As Integer Dim i As Integer
Dim cell As Object Dim cell As Object
Dim cellEnum As Object Dim cellEnum As Object
Dim statusIndicator as Object Dim cellEnum2 As Object
Dim statusIndicator as Object
statusIndicator = ThisComponent.getCurrentController.statusIndicator statusIndicator = ThisComponent.getCurrentController.statusIndicator
statusIndicator.Start(getTranslation(&quot;statusNumberingInProcess&quot;),30) statusIndicator.Start(&quot;Нумерация сносок запущена, подождите&quot;,30)
curNum = 1 curNum = 1
enum1 = ThisComponent.Text.createEnumeration enum1 = ThisComponent.Text.createEnumeration
While enum1.hasMoreElements While enum1.hasMoreElements
enum1Element = enum1.nextElement enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
traverseNoteParagraphs(curNum, enum1Element ,noteType, level)
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))
cellEnum = cell.getText().createEnumeration()
While cellEnum.hasMoreElements
cellEnumElement = cellEnum.nextElement
If cellEnumElement.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
traverseNoteParagraphs(curNum, cellEnumElement ,noteType, level)
EndIf
Wend
Next i
EndIf
Wend
statusIndicator.end()
End Sub
Sub traverseNoteParagraphs(curNum As Integer, enum1Element As Object, noteType As Integer, level As Integer)
Dim textPortions As Object
Dim thisPortion As Object
Dim footnoteText As Object
Dim label As String
Dim labelNum As Long
If enum1Element.OutlineLevel = level Then If enum1Element.OutlineLevel = level Then
curNum = 1 curNum = 1
EndIf EndIf
textPortions = enum1Element.createEnumeration enum2 = enum1Element.createEnumeration
While textPortions.hasMoreElements While enum2.hasMoreElements
thisPortion = textPortions.nextElement thisPortion = enum2.nextElement
If isTargetNote(thisPortion, noteType) Then If thisPortion.TextPortionType = &quot;Footnote&quot; Then
footnoteText = thisPortion.Footnote footnoteText = thisPortion.Footnote
label = footnoteText.getLabel label = footnoteText.getLabel
If label = &quot;&quot; Then If label = &quot;&quot; Then
@ -173,103 +73,62 @@ Sub traverseNoteParagraphs(curNum As Integer, enum1Element As Object, noteType A
curNum = curNum + 1 curNum = curNum + 1
EndIf EndIf
Else Else
If IsNumeric(label) Then labelNum = CInt(label)
If labelNum &gt; 0 Then
If level &lt; 1 Then If level &lt; 1 Then
footnoteText.setLabel(&quot;&quot;) footnoteText.setLabel(&quot;&quot;)
Else Else
footnoteText.setLabel(CStr(curNum)) footnoteText.setLabel(CStr(curNum))
EndIf
curNum = curNum + 1 curNum = curNum + 1
EndIf EndIf
EndIf EndIf
EndIf EndIf
Wend
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))
cellEnum = cell.getText().createEnumeration()
While cellEnum.hasMoreElements
cellEnumElement = cellEnum.nextElement
If cellEnumElement.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
If cellEnumElement.OutlineLevel = level Then
curNum = 1
EndIf
cellEnum2 = cellEnumElement.createEnumeration
While cellEnum2.hasMoreElements
thisPortion = cellEnum2.nextElement
If thisPortion.TextPortionType = &quot;Footnote&quot; Then
footnoteText = thisPortion.Footnote
label = footnoteText.getLabel
If label = &quot;&quot; Then
If level &gt; 0 Then
footnoteText.setLabel(CStr(curNum))
curNum = curNum + 1
EndIf
Else
labelNum = CInt(label)
If labelNum &gt; 0 Then
If level &lt; 1 Then
footnoteText.setLabel(&quot;&quot;)
Else
footnoteText.setLabel(CStr(curNum))
EndIf
curNum = curNum + 1
EndIf
EndIf
EndIf EndIf
Wend Wend
End Sub
Function isTargetNote(portion As Object, noteType As Integer) As Boolean
If ( portion.TextPortionType &lt;&gt; &quot;Footnote&quot; ) Then
isTargetNote = false
Exit Function
EndIf
If ( isEndNote(portion) = CBool(noteType) ) Then
isTargetNote = true
Exit Function
EndIf
isTargetNote = false
End Function
&apos;Sub testRange
&apos; Dim pageNums() As Integer
&apos; getPageNumsFrom(&quot;9-10,8-12,-111-099,99,102,105,187,187&quot;,pageNums())
&apos;End Sub
Sub getPageNumsFrom(inputString As String, pageNums() As Integer)
Dim ranges() As String
ranges = split(inputString,&quot;,&quot;)
For i = Lbound(ranges) To (Ubound(ranges))
processNumRange(ranges(i),pageNums())
Next i
End Sub
Function IsInArray(array As Variant, content As Variant) As Boolean
IsInArray = false
For i = LBound(array) To UBound(array)
inArr = array(i)
If inArr = content Then
IsInArray = true
Exit Function
EndIf
Next i
End Function
Sub processNumRange(range As String, pageNums() As Integer)
Dim rangeParts() As String
Dim firstValue As String
Dim secondValue As String
Dim firstNum As Integer
Dim secondNum As Integer
rangeParts = split( range, &quot;-&quot;)
If UBound(rangeParts) = 1 Then
firstValue = trim(rangeParts(0))
secondValue = trim(rangeParts(1))
If ( IsNumeric(firstValue) And IsNumeric(secondValue)) Then
firstNum = CInt(firstValue)
secondNum = CInt(secondValue)
If firstNum &lt;= secondNum Then
For i = firstNum To secondNum
If (NOT IsInArray(pageNums, i)) Then
addToArray(pageNums, i)
EndIf EndIf
Wend
Next i Next i
EndIf EndIf
EndIf Wend
EndIf statusIndicator.end()
If UBound(rangeParts) = 0 Then MsgBox &quot;Нумерация сносок успешно завершена.&quot;
firstValue = trim(rangeParts(0))
If IsNumeric(firstValue) Then
firstNum = CInt(firstValue)
If (NOT IsInArray(pageNums, firstNum)) Then
addToArray(pageNums, firstNum)
EndIf
EndIf
EndIf
End Sub End Sub
Function isEndNote(portion As Object) As Boolean
If (IsEmpty(portion.Start.EndNote)) Then
isEndNote = false
Else
isEndNote = true
EndIf
End Function
Private Sub doNotTrack Private Sub doNotTrack
Dim dispatcher As Object Dim dispatcher As Object
Dim document As Object Dim document As Object
@ -284,27 +143,4 @@ Private Sub doNotTrack
args1(0).Value = true args1(0).Value = true
dispatcher.executeDispatch(document, &quot;.uno:ShowTrackedChanges&quot;, &quot;&quot;, 0, args1()) dispatcher.executeDispatch(document, &quot;.uno:ShowTrackedChanges&quot;, &quot;&quot;, 0, args1())
End Sub End Sub
Sub FixFootnotes()
Dim description As String
Dim allNotes As Object
Dim aNote As Object
Dim oViewCursor As Object
turnOffTracking
AcceptAllTrackedChanges
oViewCursor = ThisComponent.currentController.getViewCursor()
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
allNotes = ThisComponent.FootNotes
For x = 0 to allNotes.Count -1
aNote = allNotes.getByIndex(x)
anchor = aNote.anchor
oViewCursor.goToRange(anchor,false)
oViewCursor.collapseToStart()
oViewCursor.goToRange(anchor,true)
unoCut()
oViewCursor.goLeft(1,false)
unoPaste()
Next
End Sub
</script:module> </script:module>

View file

@ -1,30 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd"> <!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="FootnotesConfig" dlg:left="99" dlg:top="62" dlg:width="157" dlg:height="170" dlg:closeable="true" dlg:moveable="true"> <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="FootnotesConfig" dlg:left="99" dlg:top="62" dlg:width="160" dlg:height="98" dlg:closeable="true" dlg:moveable="true">
<dlg:styles>
<dlg:style dlg:style-id="0" dlg:border="none"/>
</dlg:styles>
<dlg:bulletinboard> <dlg:bulletinboard>
<dlg:text dlg:id="Label2" dlg:tab-index="2" dlg:left="158" dlg:top="132" dlg:width="0" dlg:height="2" dlg:value="Label2"/> <dlg:text dlg:id="Label1" dlg:tab-index="0" dlg:left="16" dlg:top="41" dlg:width="112" dlg:height="10" dlg:value="Начинать нумерацию сносок заново "/>
<dlg:button dlg:id="CommandButton2" dlg:tab-index="4" dlg:left="77" dlg:top="122" dlg:width="2" dlg:height="0" dlg:value="CommandButton2"/> <dlg:text dlg:id="Label2" dlg:tab-index="1" dlg:left="158" dlg:top="132" dlg:width="0" dlg:height="2" dlg:value="Label2"/>
<dlg:button dlg:id="CommandButton1" dlg:tab-index="2" dlg:left="5" dlg:top="78" dlg:width="69" dlg:height="17" dlg:value="OK" dlg:button-type="ok"/>
<dlg:button dlg:id="CommandButton2" dlg:tab-index="3" dlg:left="77" dlg:top="122" dlg:width="2" dlg:height="0" dlg:value="CommandButton2"/>
<dlg:button dlg:id="CommandButton3" dlg:tab-index="4" dlg:left="86" dlg:top="78" dlg:width="69" dlg:height="17" dlg:value="Отмена" dlg:button-type="cancel"/>
<dlg:text dlg:id="Label3" dlg:tab-index="5" dlg:left="96" dlg:top="55" dlg:width="24" dlg:height="10" dlg:value="уровня"/>
<dlg:text dlg:id="Label4" dlg:tab-index="7" dlg:left="16" dlg:top="55" dlg:width="58" dlg:height="10" dlg:value="после заголовков"/>
<dlg:text dlg:id="Label5" dlg:tab-index="8" dlg:left="16" dlg:top="15" dlg:width="109" dlg:height="10" dlg:value="Введите в поле число от 0 до 10"/>
<dlg:text dlg:id="Label6" dlg:tab-index="9" dlg:left="9" dlg:top="120" dlg:width="2" dlg:height="0" dlg:value="Label6"/> <dlg:text dlg:id="Label6" dlg:tab-index="9" dlg:left="9" dlg:top="120" dlg:width="2" dlg:height="0" dlg:value="Label6"/>
<dlg:textfield dlg:style-id="0" dlg:id="level" dlg:tab-index="6" dlg:left="75" dlg:top="78" dlg:width="17" dlg:height="10"/> <dlg:text dlg:id="Label7" dlg:tab-index="10" dlg:left="17" dlg:top="28" dlg:width="122" dlg:height="10" dlg:value="0 - возврат к стандартной нумерации"/>
<dlg:button dlg:id="buttonOK" dlg:tab-index="3" dlg:left="11" dlg:top="146" dlg:width="60" dlg:height="17" dlg:value="OK" dlg:button-type="ok"/> <dlg:numericfield dlg:id="level" dlg:tab-index="6" dlg:left="77" dlg:top="55" dlg:width="17" dlg:height="10"/>
<dlg:button dlg:id="buttonCancel" dlg:tab-index="0" dlg:left="85" dlg:top="146" dlg:width="60" dlg:height="17" dlg:value="Отмена" dlg:button-type="cancel"/>
<dlg:text dlg:id="configText1" dlg:tab-index="8" dlg:left="14" dlg:top="38" dlg:width="109" dlg:height="10" dlg:value="Введите в поле число от 0 до 10"/>
<dlg:text dlg:id="configText3" dlg:tab-index="1" dlg:left="14" dlg:top="64" dlg:width="112" dlg:height="10" dlg:value="Начинать нумерацию сносок заново "/>
<dlg:text dlg:id="configText2" dlg:tab-index="10" dlg:left="14" dlg:top="52" dlg:width="122" dlg:height="10" dlg:value="0 - возврат к стандартной нумерации"/>
<dlg:text dlg:id="configText4" dlg:tab-index="7" dlg:left="14" dlg:top="78" dlg:width="58" dlg:height="10" dlg:value="после заголовков"/>
<dlg:text dlg:id="configText5" dlg:tab-index="5" dlg:left="94" dlg:top="78" dlg:width="24" dlg:height="10" dlg:value="уровня"/>
<dlg:text dlg:id="notesTypeLabel" dlg:tab-index="11" dlg:left="14" dlg:top="9" dlg:width="39" dlg:height="10" dlg:value="Тип сносок"/>
<dlg:menulist dlg:id="lb_notes_types" dlg:tab-index="12" dlg:left="53" dlg:top="9" dlg:width="91" dlg:height="10" dlg:spin="true"/>
<dlg:titledbox dlg:id="groupByHeadings" dlg:tab-index="13" dlg:left="11" dlg:top="24" dlg:width="134" dlg:height="69">
<dlg:title dlg:value="По заголовкам"/>
</dlg:titledbox>
<dlg:titledbox dlg:id="groupByPages" dlg:tab-index="14" dlg:left="11" dlg:top="100" dlg:width="134" dlg:height="40">
<dlg:title dlg:value="По страницам"/>
</dlg:titledbox>
<dlg:text dlg:id="PerPageRangeLabel" dlg:tab-index="15" dlg:left="14" dlg:top="113" dlg:width="109" dlg:height="10" dlg:value="Задайте диапазон страниц"/>
<dlg:textfield dlg:style-id="0" dlg:id="pageRange" dlg:tab-index="16" dlg:left="14" dlg:top="126" dlg:width="70" dlg:height="10"/>
</dlg:bulletinboard> </dlg:bulletinboard>
</dlg:window> </dlg:window>

View file

@ -1,25 +1,24 @@
<?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="Hyphenations" script:language="StarBasic">Private Sub markHyph <script:module xmlns:script="http://openoffice.org/2000/script" script:name="Hyphenations" script:language="StarBasic">Private Sub markHyph4
End sub End sub
Private Sub convertHyphInDoc() Private Sub convertHyphInDoc()
Dim description As String Dim description As String
Dim allNotes As Object Dim allNotes As Object
dim aNote As Object dim aNote As Object
description = getTranslation(&quot;hyphenationConfirmation&quot;) description = &quot;Запустить конвертацию автоматических переносов в ручные?&quot;
If NOT confirm(description) Then If NOT confirm(description) Then
Exit Sub Exit Sub
EndIf EndIf
Dim statusIndicator as Object Dim statusIndicator as Object
statusIndicator = ThisComponent.getCurrentController.StatusIndicator statusIndicator = ThisComponent.getCurrentController.StatusIndicator
statusIndicator.Start(getTranslation(&quot;hyphenationsInProgress&quot;),10) statusIndicator.Start(&quot;Произвожу конвертацию, подождите&quot;,10)
turnOffTracking turnOffTracking
setZoomToSpeedUpTasks()
AcceptAllTrackedChanges AcceptAllTrackedChanges
convertHyphInText(ThisComponent.Text) convertHyphInText(ThisComponent.Text)
&apos; Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; ) &apos; Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
statusIndicator.Start(getTranslation(&quot;hyphenationsInProgress&quot;),70) statusIndicator.Start(&quot;Произвожу конвертацию, подождите&quot;,70)
allNotes = ThisComponent.FootNotes allNotes = ThisComponent.FootNotes
For x = 0 to allNotes.Count -1 For x = 0 to allNotes.Count -1
aNote = allNotes.getByIndex(x) aNote = allNotes.getByIndex(x)
@ -27,18 +26,13 @@ Private Sub convertHyphInDoc()
Next Next
&apos;disableAutoHyph() &apos;disableAutoHyph()
statusIndicator.end() statusIndicator.end()
MsgBox getTranslation(&quot;hyphenationsSuccess&quot;) MsgBox &quot;Конвертация переносов успешно завершена.&quot;
End Sub End Sub
Private sub disableAutoHyph() Private sub disableAutoHyph()
Dim propertySetInfo As Object Dim propertySetInfo As Object
Dim oPositionOfMatch As Long Dim oPositionOfMatch As Long
Dim oFamilies As Object
Dim sElements() As String
Dim oFamily As Object
Dim oStyle As Object
Dim j As Integer
oFamilies = ThisComponent.StyleFamilies oFamilies = ThisComponent.StyleFamilies
sElements() = oFamilies.getElementNames() sElements() = oFamilies.getElementNames()
oFamily = oFamilies.getByName(sElements(1)) oFamily = oFamilies.getByName(sElements(1))
@ -56,8 +50,6 @@ Private Sub convertHyphInText(textElement As Object)
Dim enum1 As Object Dim enum1 As Object
Dim i As Integer Dim i As Integer
Dim cell As Object Dim cell As Object
Dim cellNames() As Object
Dim cellText As Object
enum1 = textElement.createEnumeration() enum1 = textElement.createEnumeration()
While enum1.hasMoreElements While enum1.hasMoreElements
enum1Element = enum1.nextElement enum1Element = enum1.nextElement
@ -75,21 +67,18 @@ Private Sub convertHyphInText(textElement As Object)
Wend Wend
End Sub End Sub
Private Sub convertParaHyphens(para As Object) Private Sub convertParaHyphens(para)
Dim lineEnds() As Object Dim lineEnds() As Object
Dim autoHyphens() As Object Dim autoHyphens() As Object
Dim autoBreaks() As Object Dim autoBreaks() As Object
Dim lineNumbers() As Integer Dim lineNumbers() As Integer
&apos; Dim lineShifts() As Integer &apos; Dim lineShifts() As Integer
Dim charNum as Long Dim charNum as Integer
Dim lineLength As Integer Dim lineLength As Integer
Dim lineCursor As Object
Dim i As Integer Dim i As Integer
Dim vCurs As Object Dim vCurs As Object
Dim tCurs As Object Dim tCurs As Object
Dim lineCurs As Object Dim lineCurs As Object
Dim lastChar As String
Dim nextChar As String
&apos;No hyphenation needed &apos;No hyphenation needed
If para.ParaIsHyphenation = false Then If para.ParaIsHyphenation = false Then
Exit Sub Exit Sub
@ -164,7 +153,7 @@ Private Sub verifyHyphenation(lineEnds() As Object)
For i = (Lbound(lineEnds)) To (Ubound(lineEnds)) For i = (Lbound(lineEnds)) To (Ubound(lineEnds))
vCurs.goToRange(lineEnds(i),false) vCurs.goToRange(lineEnds(i),false)
If NOT (vCurs.isAtEndOfLine() OR vCurs.isAtStartOfLine()) Then If NOT (vCurs.isAtEndOfLine() OR vCurs.isAtStartOfLine()) Then
MsgBox getTranslation(&quot;hyphenationsFailed&quot;) MsgBox &quot;Конвертация прервана. Обратитесь к разработчику.&quot;
Stop Stop
EndIf EndIf
Next i Next i
@ -181,13 +170,13 @@ Private Sub insertBreak(tCursor As Object)
tCursor.String = &quot;&quot; tCursor.String = &quot;&quot;
End Sub End Sub
Private Function getPrevChar(tCurs As Object) As String Private Function getPrevChar(tCurs As Object)
tCurs.goLeft(1,true) tCurs.goLeft(1,true)
getPrevChar = tCurs.getString() getPrevChar = tCurs.getString()
tCurs.goRight(1,false) tCurs.goRight(1,false)
End Function End Function
Private Function getNextChar(tCurs As Object) As String Private Function getNextChar(tCurs As Object)
tCurs.goRight(1,true) tCurs.goRight(1,true)
getNextChar = tCurs.getString() getNextChar = tCurs.getString()
tCurs.goLeft(1,false) tCurs.goLeft(1,false)
@ -211,7 +200,7 @@ Private Sub replaceHyphen(tCurs As Object,lineNumber As Integer)
EndIf EndIf
EndIf EndIf
If vCurs.isAtEndOfLine() = false AND vCurs.isAtStartOfLine() = false Then If vCurs.isAtEndOfLine() = false AND vCurs.isAtStartOfLine() = false Then
MsgBox getTranslation(&quot;hyphenationsFailed&quot;) MsgBox &quot;Конвертация переносов не выполнена. Алгоритм нуждается в доработке. Обратитесь к разработчику.&quot;
Stop Stop
EndIf EndIf
End Sub End Sub
@ -302,7 +291,7 @@ Private Sub stretchLine(tCurs As Object)
End Sub End Sub
Private Function getParaLineNumber(vCursor As Object) As Integer Private Function getParaLineNumber(vCursor As Object)
Dim lineNumber As Integer Dim lineNumber As Integer
Dim oSavePosition As Object Dim oSavePosition As Object
Dim tCursor As Object Dim tCursor As Object
@ -336,9 +325,9 @@ End Sub
Private Function needHyphen(before As String, after As String,lineLength As Integer) As boolean Private Function needHyphen(before As String, after As String,lineLength As Integer)
Dim charNumBefore as Long Dim charNumBefore as Integer
Dim charNumAfter as Long Dim charNumAfter as Integer
needHyphen = true needHyphen = true
If lineLength &lt; 2 Then If lineLength &lt; 2 Then
needHyphen = false needHyphen = false
@ -381,10 +370,6 @@ Private Function needHyphen(before As String, after As String,lineLength As Inte
needHyphen = false needHyphen = false
Case &quot;/&quot; Case &quot;/&quot;
needHyphen = false needHyphen = false
Case &quot;?&quot;
needHyphen = false
Case &quot;!&quot;
needHyphen = false
End Select End Select
Select Case after Select Case after
Case &quot; &quot; Case &quot; &quot;
@ -435,5 +420,7 @@ Private Function confirm(description)
End Function End Function
Sub Macro1
End Sub
</script:module> </script:module>

View file

@ -19,251 +19,8 @@ Sub decrementKern()
changeKern(-2) changeKern(-2)
End Sub End Sub
Sub balanceDoublePagesFootnotes
Dim oViewCursor As Object
oViewCursor = Thiscomponent.currentController.getViewCursor()
Dim leftHeight As Long
Dim rightHeight As Long
Dim odd As Integer
Dim rightPageNum As Integer
Dim leftPageNum As Integer
Dim startPage As Integer
Dim docPages As Integer
startPage = oViewCursor.getPage()
docPages = thiscomponent.currentController.pageCount
odd = startPage Mod 2
If startPage &lt;&gt; 1 AND (startPage &lt;&gt; docPages Or odd = 1) Then
If odd = 1 Then
rightPageNum = startPage
leftPageNum = startPage - 1
Else
leftPageNum = startPage
rightPageNum = startPage + 1
EndIf
If pageHasNotes(leftPageNum) And pageHasNotes(rightPageNum) Then
leftHeight = getFootnoteAreaHeight(leftPageNum)
rightHeight = getFootnoteAreaHeight(rightPageNum)
EndIf
MsgBox leftHeight &amp; &quot; &quot; &amp; rightHeight
EndIf
End Sub Function changeCharWidth(delta) As Boolean
Function getFootnoteAreaHeight(pageNumber As Integer)
Dim oViewCursor As Object
Dim fnAreaEnd As Object
Dim pageStyleName As String
Dim oStyles As Object
Dim newHeight As Integer
Dim initialHeight As Integer
oStyles = ThisComponent.StyleFamilies
Dim pageSTyles As Object
pageStyles = oStyles.getByName(oStyles.elementNames(2))
Dim pageStyle As Object
Dim decrement As Integer
Dim tmpPageNum As Integer
decrement = 10000
oViewCursor = Thiscomponent.currentController.getViewCursor()
oViewCursor.jumpToPage(pageNumber)
pageStyleName = getCurPageStyleName()
pageStyle = pageStyles.getByName(pageStyleName)
initialHeight = pageStyle.FootnoteHeight
If pageStyle.FootnoteHeight = 0 Then
pageStyle.FootnoteHeight = pageStyle.Height - pageStyle.TopMargin - pageStyle.BottomMargin
EndIf
&apos;TODO ADD CHECK IF THERE IS A FOOTNOTE AREA ON PAGE
fnAreaEnd = getFNAreaEnd(pageNumber)
Dim savePageHeight As Long
savePageHeight = pageStyle.Height
Do While pageStyle.FootnoteHeight &gt; 10
Do While pageStyle.FootnoteHeight &lt; decrement
decrement = decrement / 2
Loop
newHeight = pageStyle.FootnoteHeight - decrement
pageStyle.FootnoteHeight = newHeight
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
If tmpPageNum &lt;&gt; pageNumber Then
If decrement &lt; 4 Then
pageStyle.FootnoteHeight = pageStyle.FootnoteHeight + decrement * 2
&apos;Hack to force libreoffice to refresh page layout
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
If tmpPageNum &lt;&gt; pageNumber Then
pageStyle.Height = savePageHeight + 100
pageStyle.Height = savePageHeight
EndIf
Exit Do
Else
newHeight = pageStyle.FootnoteHeight + decrement
decrement = decrement / 2
pageStyle.FootnoteHeight = newHeight
&apos;Hack to force libreoffice to refresh page layout
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
If tmpPageNum &lt;&gt; pageNumber Then
pageStyle.Height = savePageHeight + 100
pageStyle.Height = savePageHeight
EndIf
EndIf
EndIf
Loop
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
If tmpPageNum &lt;&gt; pageNumber Then
pageStyle.FootnoteHeight = 0
MsgBox &quot;Error&quot;
Stop
EndIf
getFootnoteAreaHeight = pageStyle.FootnoteHeight
End Function
sub pageDialog
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, &quot;.uno:PageSettingDialog&quot;, &quot;&quot;, 0, Array())
end sub
Function getPageNumberVCurs(cursor As object) As Integer
Dim oViewCursor As Object
Dim oSavePosition As Object
oViewCursor = Thiscomponent.currentController.getViewCursor()
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
oViewCursor.goToRange(cursor.Start,false)
getPageNumberVCurs = oViewCursor.getPage()
oViewCursor.goToRange(oViewCursor, false)
End Function
Function pageHasNotes(pageNumber As Integer) As Boolean
Dim allNotes As Object
allNotes = thisComponent.FootNotes
Dim curNote As Object
Dim noteStartPage As Integer
Dim noteEndPage As Integer
Dim oEnum As Object
&apos; Dim noteStartCursor As Object
Dim endtText As Object
pageHasNotes = false
Dim x As Integer
For x = 0 to allNotes.Count -1
curNote = allNotes.getByIndex(x)
noteEndPage = getPageNumberVCurs(curNote.Text.End)
If noteEndPage &gt;= pageNumber Then
noteStartPage = getPageNumberVCurs(curNote.Text.Start)
If pageNumber = noteStartPage Or (noteStartPage &lt; pageNumber And noteEndPage &gt;= pageNumber) Then
pageHasNotes = true
Exit function
EndIf
EndIf
Next x
End Function
Function getFNAreaEnd(pageNumber As Integer)
Dim allNotes As Object
allNotes = thisComponent.FootNotes
Dim curNote As Object
Dim noteStartPage As Integer
Dim noteEndPage As Integer
Dim prevNote As Object
Dim oEnum As Object
&apos; Dim noteStartCursor As Object
Dim endtText As Object
Dim pageHasNotes As Boolean
pageHasNotes = false
Dim x As Integer
For x = 0 to allNotes.Count -1
curNote = allNotes.getByIndex(x)
noteEndPage = getPageNumberVCurs(curNote.Text.End)
If noteEndPage &gt;= pageNumber Then
noteStartPage = getPageNumberVCurs(curNote.Text.Start)
If pageNumber = noteStartPage Or (noteStartPage &lt; pageNumber And noteEndPage &gt;= pageNumber) Then
pageHasNotes = true
EndIf
If pageHasNotes AND pageNumber &lt; noteStartPage Then
getFNAreaEnd = prevNote.Text.createTextCursorByRange(prevNote.Text.End)
Exit function
Endif
If pageHasNotes AND pageNumber &lt; noteEndPage Then
getFNAreaEnd = getFNAreaEndInFootnote(curNote,pageNumber)
Exit function
EndIf
prevNote = curNote
EndIf
Next x
End Function
Function getFNAreaEndInFootnote(note As Object, pageNum As Integer)
Dim oViewCursor As Object
Dim oSavePosition As Object
Dim tmpPageNum As Integer
If getPageNumber(note.Text.Start) &gt; pageNum Then
&apos;ERROR Footnote starts after this page number
Exit Function
EndIf
oViewCursor = Thiscomponent.currentController.getViewCursor()
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
oViewCursor.goToRange(note.Text.End,false)
Do
oViewCursor.gotoStartOfLine(false)
tmpPageNum = getPageNumber(oViewCursor)
If tmpPageNum &lt;= pageNum Then
Exit Do
EndIf
oViewCursor.goLeft(1,false)
tmpPageNum = getPageNumber(oViewCursor)
Loop While tmpPageNum &gt; pageNum
getFNAreaEndInFootnote = oViewCursor.Text.createTextCursorByRange(oViewCursor)
oViewCursor.goToRange(oSavePosition,false)
End Function
Sub getFNAreaStart
Dim pageNumber As Integer
pageNumber = getPageNumber(Thiscomponent.currentController.getViewCursor())
Dim allNotes As Object
allNotes = thisComponent.FootNotes
Dim aNote As Object
Dim oEnum As Object
Dim noteStart As Object
Dim noteEnd As Object
Dim x As Integer
For x = 0 to allNotes.Count -1
aNote = allNotes.getByIndex(x)
&apos;oEnum = aNote.Text.createEnumeration()
noteStart = aNote.Text.createTextCursorByRange(aNote.Text.Start)
noteEnd = aNote.Text.createTextCursorByRange(aNote.Text.End)
If pageNumber = getPageNumber(noteStart) Then
MsgBox &quot;Starts here &quot; &amp; x &amp; &quot; page number &quot; &amp; pageNumber
Exit sub
Endif
If pageNumber = getPageNumber(noteEnd) Then
MsgBox &quot;ends here &quot; + x
Exit sub
EndIf
&apos;Do While oEnum.hasMoreElements()
&apos; oCurPar = oEnum.nextElement()
&apos;Loop
Next
&apos;Globalscope.BasicLibraries.LoadLibrary(&quot;MRILib&quot;)
&apos;mri ThisComponent
End Sub
Function changeCharWidth(delta As Integer) As Boolean
Dim oViewCursor As Object Dim oViewCursor As Object
Dim oTextCursor As Object Dim oTextCursor As Object
Dim charScale As Integer Dim charScale As Integer
@ -277,7 +34,7 @@ Function changeCharWidth(delta As Integer) As Boolean
oViewCursor.charScaleWidth = charScale + delta oViewCursor.charScaleWidth = charScale + delta
End Function End Function
Function changeKern(delta As Integer) As Boolean Function changeKern(delta) As Boolean
Dim oViewCursor As Object Dim oViewCursor As Object
Dim oTextCursor As Object Dim oTextCursor As Object
Dim kerning As Integer Dim kerning As Integer
@ -289,21 +46,4 @@ Function changeKern(delta As Integer) As Boolean
End If End If
oViewCursor.CharKerning = kerning + delta oViewCursor.CharKerning = kerning + delta
End Function End Function
sub undoUno
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, &quot;.uno:Undo&quot;, &quot;&quot;, 0, Array())
end sub
</script:module> </script:module>

View file

@ -1,43 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd"> <!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="PageConfig" dlg:left="102" dlg:top="13" dlg:width="386" dlg:height="316" dlg:closeable="true" dlg:moveable="true"> <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="PageConfig" dlg:left="133" dlg:top="45" dlg:width="250" dlg:height="251" dlg:closeable="true" dlg:moveable="true">
<dlg:styles> <dlg:styles>
<dlg:style dlg:style-id="0" dlg:border="simple"/> <dlg:style dlg:style-id="0" dlg:background-color="0xb4c7dc"/>
<dlg:style dlg:style-id="1" dlg:border="none"/> <dlg:style dlg:style-id="1" dlg:background-color="0x3faf46"/>
</dlg:styles> </dlg:styles>
<dlg:bulletinboard> <dlg:bulletinboard>
<dlg:textfield dlg:style-id="0" dlg:id="pageHeight" dlg:tab-index="13" dlg:left="3" dlg:top="143" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/> <dlg:img dlg:style-id="0" dlg:id="ImageControl1" dlg:tab-index="0" dlg:left="74" dlg:top="18" dlg:width="135" dlg:height="215"/>
<dlg:textfield dlg:style-id="0" dlg:id="pageWidth" dlg:tab-index="9" dlg:left="108" dlg:top="301" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/> <dlg:img dlg:style-id="1" dlg:id="ImageControl2" dlg:tab-index="1" dlg:left="91" dlg:top="48" dlg:width="98" dlg:height="155"/>
<dlg:textfield dlg:style-id="0" dlg:id="leftPageMargin" dlg:tab-index="8" dlg:left="40" dlg:top="3" dlg:width="18" dlg:height="10" dlg:valign="center" dlg:value="1000"/> <dlg:img dlg:id="ImageControl3" dlg:tab-index="2" dlg:left="90" dlg:top="25" dlg:width="99" dlg:height="15"/>
<dlg:textfield dlg:style-id="0" dlg:id="topPageMargin" dlg:tab-index="4" dlg:left="204" dlg:top="32" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/> <dlg:img dlg:id="ImageControl4" dlg:tab-index="3" dlg:left="91" dlg:top="209" dlg:width="98" dlg:height="13"/>
<dlg:textfield dlg:style-id="0" dlg:id="headerHeight" dlg:tab-index="5" dlg:left="204" dlg:top="46" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="headerOffset" dlg:tab-index="6" dlg:left="204" dlg:top="62" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="footerHeight" dlg:tab-index="11" dlg:left="204" dlg:top="261" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="footerOffset" dlg:tab-index="10" dlg:left="204" dlg:top="245" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="footnoteAreaHeight" dlg:tab-index="7" dlg:left="204" dlg:top="232" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="footnoteAreaOffset" dlg:tab-index="3" dlg:left="204" dlg:top="205" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:text dlg:id="description" dlg:tab-index="14" dlg:left="238" dlg:top="8" dlg:width="145" dlg:height="42" dlg:value="Label1" dlg:multiline="true"/>
<dlg:button dlg:id="Cancel" dlg:tab-index="16" dlg:left="313" dlg:top="292" dlg:width="60" dlg:height="13" dlg:value="Cancel" dlg:button-type="cancel"/>
<dlg:button dlg:id="Ok" dlg:tab-index="15" dlg:left="240" dlg:top="292" dlg:width="60" dlg:height="13" dlg:value="Ok" dlg:toggled="1">
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ePublishing.PageStyles.applyPageStyleConfiguration?language=Basic&amp;location=application" script:language="Script"/>
</dlg:button>
<dlg:img dlg:style-id="1" dlg:id="ImageControl1" dlg:tab-index="30" dlg:left="21" dlg:top="10" dlg:width="214" dlg:height="291" dlg:scale-mode="isotropic" dlg:tabstop="true"/>
<dlg:menulist dlg:style-id="1" dlg:id="pageStyles" dlg:tab-index="17" dlg:left="238" dlg:top="52" dlg:width="145" dlg:height="230" dlg:multiselection="true"/>
<dlg:textfield dlg:style-id="0" dlg:id="rightPageMargin" dlg:tab-index="2" dlg:left="178" dlg:top="3" dlg:width="18" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="bottomPageMargin" dlg:tab-index="12" dlg:left="204" dlg:top="280" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:textfield dlg:style-id="0" dlg:id="textToLine" dlg:tab-index="1" dlg:left="204" dlg:top="189" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
<dlg:text dlg:id="mm1" dlg:tab-index="0" dlg:left="20" dlg:top="143" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center" dlg:tabstop="true"/>
<dlg:text dlg:id="mm2" dlg:tab-index="29" dlg:left="58" dlg:top="3" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm3" dlg:tab-index="28" dlg:left="124" dlg:top="301" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm4" dlg:tab-index="27" dlg:left="220" dlg:top="32" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm5" dlg:tab-index="26" dlg:left="196" dlg:top="3" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm6" dlg:tab-index="25" dlg:left="220" dlg:top="46" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm7" dlg:tab-index="24" dlg:left="220" dlg:top="62" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm8" dlg:tab-index="23" dlg:left="220" dlg:top="280" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm9" dlg:tab-index="22" dlg:left="220" dlg:top="261" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm10" dlg:tab-index="21" dlg:left="220" dlg:top="232" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm11" dlg:tab-index="20" dlg:left="220" dlg:top="205" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm12" dlg:tab-index="19" dlg:left="220" dlg:top="189" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
<dlg:text dlg:id="mm13" dlg:tab-index="18" dlg:left="220" dlg:top="245" dlg:width="12" dlg:height="10" dlg:value="mm" dlg:align="center" dlg:valign="center"/>
</dlg:bulletinboard> </dlg:bulletinboard>
</dlg:window> </dlg:window>

View file

@ -1,202 +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="PageStyles" script:language="StarBasic" script:moduleType="normal"> <script:module xmlns:script="http://openoffice.org/2000/script" script:name="PageStyles" script:language="StarBasic" script:moduleType="normal">Sub setDimensions
Dim pDialog As Object
Sub pageStylesDialog
Dim listBox As Object
Dim oStyles As Object
Dim pageStyles As Object
Dim pageStyleNames() As String
Dim imageURL As String
Dim pageStyle As Object
Dim i As Integer
oStyles = ThisComponent.StyleFamilies
pageStyles = oStyles.getByName(oStyles.elementNames(2))
pageStyleNames = pageStyles.getElementNames
Dim displayPageStyleNames(Ubound(pageStyleNames))
For i = LBound(displayPageStyleNames) To Ubound(displayPageStyleNames)
pageStyle = pageStyles.getByName(pageStyleNames(i))
displayPageStyleNames(i) = pageStyle.displayName
Next i
subShellSort(displayPageStyleNames)
DialogLibraries.LoadLibrary(&quot;ePublishing&quot;)
pDialog = CreateUnoDialog( DialogLibraries.ePublishing.PageConfig )
imageURL = convertToURL(getExtensionPath() + &quot;/images/panel.svg&quot;)
pDialog.getControl(&quot;ImageControl1&quot;).model.imageURL = imageURL
pDialog.getControl(&quot;ImageControl1&quot;).model.ScaleMode = 2
pDialog.getControl(&quot;description&quot;).setText(getTranslation(&quot;PageConfigDialogTranslations&quot;))
cleanPageSettings()
setHelpText()
pDialog.getControl(&quot;Cancel&quot;).Label = getTranslation(&quot;PageConfigDialogCancelButton&quot;)
pDialog.getControl(&quot;Ok&quot;).Label = getTranslation(&quot;PageConfigDialogOkButton&quot;)
listBox = pDialog.getControl(&quot;pageStyles&quot;)
listBox.addItems(displayPageStyleNames, 0)
pDialog.Title = getTranslation(&quot;PageConfigDialogTitle&quot;)
pDialog.Execute()
pDialog.dispose()
End Sub
Function getExtensionPath As String
Dim extensionIdentifier As String
Dim pip As Object
extensionIdentifier = &quot;pro.litvinovg.epublishing&quot;
pip = GetDefaultContext.getByName(&quot;/singletons/com.sun.star.deployment.PackageInformationProvider&quot;)
getExtensionPath = pip.getPackageLocation(extensionIdentifier)
End Function
Sub applyPageStyleConfiguration()
Dim styles As Object
Dim selectedItems() As String
Dim oStyles As Object
Dim pageStyles As Object
Dim pageStyleNames() As String
Dim pageStyleName As String
Dim pageStyleDisplayName As String
Dim pageStyle As Object
Dim style As Object
Dim i As Integer
Dim foundIndex As Integer
pDialog.getControl(&quot;Ok&quot;).Model.State = 0
styles = pDialog.getControl(&quot;pageStyles&quot;)
&apos;Mri styles
selectedItems = styles.getSelectedItems
If Ubound(selectedItems) &lt; 0 Then
MsgBox getTranslation(&quot;pageStylesNoStyleSelected&quot;)
Exit sub
EndIf
If noPageSettings() Then
MsgBox getTranslation(&quot;pageStylesNoSettingsSet&quot;)
Exit sub
EndIf
oStyles = ThisComponent.StyleFamilies
pageStyles = oStyles.getByName(oStyles.elementNames(2))
pageStyleNames = pageStyles.getElementNames
Dim displayPageStyleNames(Ubound(pageStyleNames))
For i = LBound(displayPageStyleNames) To Ubound(displayPageStyleNames)
pageStyle = pageStyles.getByName(pageStyleNames(i))
displayPageStyleNames(i) = pageStyle.displayName
Next i
For i = LBound(selectedItems) To Ubound(selectedItems)
pageStyleDisplayName = selectedItems(i)
foundIndex = getIndex(displayPageStyleNames, pageStyleDisplayName)
pageStyleName = pageStyleNames(foundIndex)
pageStyle = pageStyles.getByName(pageStyleName)
applyPageSettings(pageStyle)
Next i
MsgBox getTranslation(&quot;PageConfigSettingsApplied&quot;)
cleanPageSettings()
End Sub
Sub cleanPageSettings()
pDialog.getControl(&quot;pageHeight&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;pageWidth&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;leftPageMargin&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;topPageMargin&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;rightPageMargin&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;bottomPageMargin&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;headerHeight&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;headerOffset&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;footerHeight&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;footerOffset&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;footnoteAreaHeight&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;footnoteAreaOffset&quot;).setText(&quot;&quot;)
pDialog.getControl(&quot;textToLine&quot;).setText(&quot;&quot;)
End Sub
Sub setHelpText
pDialog.getControl(&quot;pageHeight&quot;).Model.HelpText = getTranslation(&quot;PageConfigPageHeight&quot;)
pDialog.getControl(&quot;pageWidth&quot;).Model.HelpText = getTranslation(&quot;PageConfigPageWidth&quot;)
pDialog.getControl(&quot;leftPageMargin&quot;).Model.HelpText = getTranslation(&quot;PageConfigLeftPageMargin&quot;)
pDialog.getControl(&quot;topPageMargin&quot;).Model.HelpText = getTranslation(&quot;PageConfigTopPageMargin&quot;)
pDialog.getControl(&quot;rightPageMargin&quot;).Model.HelpText = getTranslation(&quot;PageConfigRightPageMargin&quot;)
pDialog.getControl(&quot;bottomPageMargin&quot;).Model.HelpText = getTranslation(&quot;PageConfigBottomPageMargin&quot;)
pDialog.getControl(&quot;headerHeight&quot;).Model.HelpText = getTranslation(&quot;PageConfigHeaderHeight&quot;)
pDialog.getControl(&quot;headerOffset&quot;).Model.HelpText = getTranslation(&quot;PageConfigHeaderOffset&quot;)
pDialog.getControl(&quot;footerHeight&quot;).Model.HelpText = getTranslation(&quot;PageConfigFooterHeight&quot;)
pDialog.getControl(&quot;footerOffset&quot;).Model.HelpText = getTranslation(&quot;PageConfigFooterOffset&quot;)
pDialog.getControl(&quot;footnoteAreaHeight&quot;).Model.HelpText = getTranslation(&quot;PageConfigFootnoteAreaHeight&quot;)
pDialog.getControl(&quot;footnoteAreaOffset&quot;).Model.HelpText = getTranslation(&quot;PageConfigFootnoteAreaOffset&quot;)
pDialog.getControl(&quot;textToLine&quot;).Model.HelpText = getTranslation(&quot;PageConfigTextToLine&quot;)
pDialog.getControl(&quot;mm1&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm2&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm3&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm4&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm5&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm6&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm7&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm8&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm9&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm10&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm11&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm12&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
pDialog.getControl(&quot;mm13&quot;).setText(getTranslation(&quot;PageConfigMM&quot;))
End Sub
Function noPageSettings() As Boolean
Dim setting As String
noPageSettings = true
setting = pDialog.getControl(&quot;pageHeight&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;pageWidth&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;leftPageMargin&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;topPageMargin&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;rightPageMargin&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;bottomPageMargin&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;headerHeight&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;headerOffset&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;footerHeight&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;footerOffset&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;footnoteAreaHeight&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;footnoteAreaOffset&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
setting = pDialog.getControl(&quot;textToLine&quot;).getText()
If Len(setting) &gt; 0 Then
noPageSettings = false
EndIf
End Function
Sub applyPageSettings(targetStyle As Object)
Dim oStyles As Object Dim oStyles As Object
Dim curStyle As Object Dim curStyle As Object
Dim inputHeight As String Dim inputHeight As String
@ -208,9 +12,6 @@ Sub applyPageSettings(targetStyle As Object)
Dim inputFooterBodyDistance As String Dim inputFooterBodyDistance As String
Dim inputFootnoteLineDistance As String Dim inputFootnoteLineDistance As String
Dim inputFootnoteLineTextDistance As String Dim inputFootnoteLineTextDistance As String
Dim inputFooterHeight As String
Dim inputHeaderHeight As String
Dim inputFootnoteArea As String
Dim newWidth As Long Dim newWidth As Long
Dim newHeight As Long Dim newHeight As Long
@ -226,112 +27,85 @@ Sub applyPageSettings(targetStyle As Object)
Dim footnoteLineTextDistance As Long Dim footnoteLineTextDistance As Long
oStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;) oStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
inputWidth = pDialog.getControl(&quot;pageWidth&quot;).getText() inputWidth = InputBox(&quot;Введите ширину страниц (в мм):&quot;, &quot;Установка ширины всех страниц документа&quot;, &quot;&quot;)
inputHeight = pDialog.getControl(&quot;pageHeight&quot;).getText() inputHeight = InputBox(&quot;Введите высоту страниц (в мм):&quot;, &quot;Установка высоты всех страниц документа&quot;, &quot;&quot;)
inputTopMargin = pDialog.getControl(&quot;topPageMargin&quot;).getText() inputTopMargin = InputBox(&quot;Введите размер верхнего поля (в мм):&quot;, &quot;Установка размера верхнего поля для всех страниц&quot;, &quot;&quot;)
inputBottomMargin = pDialog.getControl(&quot;bottomPageMargin&quot;).getText() inputBottomMargin = InputBox(&quot;Введите резмер нижнего поля (в мм):&quot;, &quot;Установка размера нижнего поля для всех страниц&quot;, &quot;&quot;)
inputLeftMargin = pDialog.getControl(&quot;leftPageMargin&quot;).getText() inputLeftMargin = InputBox(&quot;Введите размер левого поля (в мм):&quot;, &quot;Установка размера левого поля для всех страниц&quot;, &quot;&quot;)
inputRightMargin = pDialog.getControl(&quot;rightPageMargin&quot;).getText() inputRightMargin = InputBox(&quot;Введите размер правого поля (в мм):&quot;, &quot;Установка размера правого поля для всех страниц&quot;, &quot;&quot;)
inputHeaderBodyDistance = pDialog.getControl(&quot;headerOffset&quot;).getText() inputHeaderBodyDistance = InputBox(&quot;Введите расстояние от верхнего колонтитула до текста (в сотых долях мм):&quot;, &quot;Установка расстояния от верхнего колонтитула до текста&quot;, &quot;&quot;)
inputFooterBodyDistance = pDialog.getControl(&quot;footerOffset&quot;).getText() inputFooterBodyDistance = InputBox(&quot;Введите расстояние от нижнего колонтитула до текста (в сотых долях мм):&quot;, &quot;Установка расстояния от нижнего колонтитула до текста &quot;, &quot;&quot;)
inputFootnoteLineTextDistance = InputBox(&quot;Введите расстояние от текста страницы до линии сноски (в сотых долях мм):&quot;, &quot;Установка расстояния от текста страницы до линии сноски &quot;, &quot;&quot;)
inputFootnoteLineDistance = InputBox(&quot;Введите расстояние от линии сноски до текста сноски (в сотых долях мм):&quot;, &quot;Установка расстояния от линии сноски до текста сноски &quot;, &quot;&quot;)
inputFooterHeight = pDialog.getControl(&quot;footerHeight&quot;).getText() For i = 0 to oStyles.Count - 1
inputHeaderHeight = pDialog.getControl(&quot;headerHeight&quot;).getText() curStyle = oStyles.getByIndex(i)
inputFootnoteArea = pDialog.getControl(&quot;footnoteAreaHeight&quot;).getText()
inputFootnoteLineTextDistance = pDialog.getControl(&quot;textToLine&quot;).getText()
&apos;InputBox(&quot;Введите расстояние от текста страницы до линии сноски (в сотых долях мм):&quot;, &quot;Установка расстояния от текста страницы до линии сноски &quot;, &quot;&quot;)
inputFootnoteLineDistance = pDialog.getControl(&quot;footnoteAreaOffset&quot;).getText()
&apos;InputBox(&quot;Введите расстояние от линии сноски до текста сноски (в сотых долях мм):&quot;, &quot;Установка расстояния от линии сноски до текста сноски &quot;, &quot;&quot;)
curStyle = targetStyle
&apos;Mri curStyle
newWidth = curStyle.Width newWidth = curStyle.Width
newHeight = curStyle.height newHeight = curStyle.height
newTopMargin = curStyle.TopMargin newTopMargin = curStyle.TopMargin
newBottomMargin = curStyle.BottomMargin newBottomMargin = curStyle.BottomMargin
newLeftMargin = curStyle.LeftMargin newLeftMargin = curStyle.LeftMargin
newRightMargin = curStyle.RightMargin newRightMargin = curStyle.RightMargin
If covertMMtoLong(inputFootnoteArea) &gt; 0 Then
Dim footnoteArea As Long
footnoteArea = covertMMtoLong(inputFootnoteArea)
curStyle.FootnoteHeight = footnoteArea
EndIf
If covertMMtoLong(inputHeaderBodyDistance) &gt; 0 Then If CLng(inputHeaderBodyDistance) &gt; 0 Then
headerBodyDistance = covertMMtoLong(inputHeaderBodyDistance) headerBodyDistance = CLng(inputHeaderBodyDistance)
curStyle.HeaderBodyDistance = headerBodyDistance curStyle.HeaderBodyDistance = headerBodyDistance
EndIf EndIf
If covertMMtoLong(inputFooterBodyDistance) &gt; 0 Then If CLng(inputFooterBodyDistance) &gt; 0 Then
footerBodyDistance = covertMMtoLong(inputFooterBodyDistance) footerBodyDistance = CLng(inputFooterBodyDistance)
curStyle.FooterBodyDistance = footerBodyDistance curStyle.FooterBodyDistance = footerBodyDistance
EndIf EndIf
If covertMMtoLong(inputFootnoteLineDistance) &gt; 0 Then
footnoteLineDistance = covertMMtoLong(inputFootnoteLineDistance) If CLng(inputFootnoteLineDistance) &gt; 0 Then
footnoteLineDistance = CLng(inputFootnoteLineDistance)
curStyle.FootnoteLineDistance = footnoteLineDistance curStyle.FootnoteLineDistance = footnoteLineDistance
EndIf EndIf
If covertMMtoLong(inputFootnoteLineTextDistance) &gt; 0 Then If CLng(inputFootnoteLineTextDistance) &gt; 0 Then
footnoteLineTextDistance = covertMMtoLong(inputFootnoteLineTextDistance) footnoteLineTextDistance = CLng(inputFootnoteLineTextDistance)
curStyle.FootnoteLineTextDistance = footnoteLineTextDistance curStyle.FootnoteLineTextDistance = footnoteLineTextDistance
EndIf EndIf
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
If covertMMtoLong(inputFooterHeight) &gt; 0 Then &apos;Mri curStyle
Dim footerHeight As Long
footerHeight = covertMMtoLong(inputFooterHeight)
curStyle.FooterIsOn = true
curStyle.FooterIsDynamicHeight = false
curStyle.FooterHeight = footerHeight + curStyle.FooterBodyDistance
EndIf
If covertMMtoLong(inputHeaderHeight) &gt; 0 Then
Dim headerHeight As Long
headerHeight = covertMMtoLong(inputHeaderHeight)
curStyle.HeaderIsOn = true
curStyle.HeaderIsDynamicHeight = false
curStyle.HeaderHeight = headerHeight + curStyle.HeaderBodyDistance
EndIf
If curstyle.IsLandscape Then If curstyle.IsLandscape Then
If covertMMtoLong(inputHeight) &gt; 0 Then If CLng(inputHeight) &gt; 0 Then
newWidth = covertMMtoLong(inputHeight) newWidth = CLng(inputHeight + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputWidth) &gt; 0 Then If CLng(inputWidth) &gt; 0 Then
newHeight = covertMMtoLong(inputWidth) newHeight = CLng(inputWidth + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputLeftMargin) &gt; 0 Then If CLng(inputLeftMargin) &gt; 0 Then
newTopMargin = covertMMtoLong(inputLeftMargin) newTopMargin = CLng(inputLeftMargin + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputRightMargin) &gt; 0 Then If CLng(inputRightMargin) &gt; 0 Then
newBottomMargin = covertMMtoLong(inputRightMargin) newBottomMargin = CLng(inputRightMargin + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputTopMargin) &gt; 0 Then If CLng(inputTopMargin) &gt; 0 Then
newLeftMargin = covertMMtoLong(inputTopMargin) newLeftMargin = CLng(inputTopMargin + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputBottomMargin) &gt; 0 Then If CLng(inputBottomMargin) &gt; 0 Then
newRightMargin = covertMMtoLong(inputBottomMargin) newRightMargin = CLng(inputBottomMargin + &quot;00&quot;)
EndIf EndIf
Else Else
If covertMMtoLong(inputWidth) &gt; 0 Then If CLng(inputWidth) &gt; 0 Then
newWidth = covertMMtoLong(inputWidth) newWidth = CLng(inputWidth + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputHeight) &gt; 0 Then If CLng(inputHeight) &gt; 0 Then
newHeight = covertMMtoLong(inputHeight) newHeight = CLng(inputHeight + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputTopMargin) &gt; 0 Then If CLng(inputTopMargin) &gt; 0 Then
newTopMargin = covertMMtoLong(inputTopMargin) newTopMargin = CLng(inputTopMargin + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputBottomMargin) &gt; 0 Then If CLng(inputBottomMargin) &gt; 0 Then
newBottomMargin = covertMMtoLong(inputBottomMargin) newBottomMargin = CLng(inputBottomMargin + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputLeftMargin) &gt; 0 Then If CLng(inputLeftMargin) &gt; 0 Then
newLeftMargin = covertMMtoLong(inputLeftMargin) newLeftMargin = CLng(inputLeftMargin + &quot;00&quot;)
EndIf EndIf
If covertMMtoLong(inputRightMargin) &gt; 0 Then If CLng(inputRightMargin) &gt; 0 Then
newRightMargin = covertMMtoLong(inputRightMargin) newRightMargin = CLng(inputRightMargin + &quot;00&quot;)
EndIf EndIf
End If End If
textFieldWidth = newWidth - newLeftMargin - newRightMargin textFieldWidth = newWidth - newLeftMargin - newRightMargin
@ -347,35 +121,8 @@ Sub applyPageSettings(targetStyle As Object)
curStyle.TopMargin = newTopMargin curStyle.TopMargin = newTopMargin
curStyle.BottomMargin = newBottomMargin curStyle.BottomMargin = newBottomMargin
EndIf EndIf
Next
Exit Sub Exit Sub
End Sub End Sub
Function covertMMtoLong(dimension As String) As Long
If Len(dimension) &lt; 1 Then
convertMMtoLong = -1
Exit Function
EndIf
dimension = customReplace(dimension, &quot;.&quot;, &quot;,&quot;)
If Not IsNumeric( dimension ) Then
convertMMtoLong = -1
Exit Function
EndIf
Dim value As Double
value = CDbl(dimension)
If value &lt; 0 Then
convertMMtoLong = -1
Exit Function
EndIf
value = value * 100
covertMMtoLong = CLng(value)
End Function
Function customReplace(Source As String, Search As String, NewPart As String) As String
Dim Result As String
Result = join(split(Source, Search), NewPart)
customReplace = Result
End Function
</script:module> </script:module>

View file

@ -1,14 +1,14 @@
<?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="TOCLinks" script:language="StarBasic" script:moduleType="normal">Sub makeOutlineLinks <script:module xmlns:script="http://openoffice.org/2000/script" script:name="TOCLinks" script:language="StarBasic" script:moduleType="normal">Sub markTOC4
Dim oViewCursor As Object End Sub
Sub makeOutlineLinks
Dim i As Integer Dim i As Integer
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.jumpToFirstPage()
For i = 1 To 10 For i = 1 To 10
makeLinksWithLevel(i) makeLinksWithLevel(i)
Next i Next i
MsgBox (getTranslation(&quot;OutlineLinksFinished&quot;))
End Sub End Sub
@ -18,29 +18,26 @@ Sub makeLinksWithLevel(level)
Dim outline() As Object Dim outline() As Object
Dim oAnchor1Name As String Dim oAnchor1Name As String
Dim oAnchor2Name As String Dim oAnchor2Name As String
Dim message As String
Dim i As Integer Dim i As Integer
heading = getHeadingWithLevel(level) heading = getHeadingWithLevel(level)
outline = getOutlineWithLevel(level) outline = getOutlineWithLevel(level)
If Ubound(heading) &lt;&gt; -1 AND Ubound(outline) &lt;&gt; -1 Then If Ubound(heading) &lt;&gt; -1 AND Ubound(outline) &lt;&gt; -1 Then
If (Ubound(outline) + 1) MOD (Ubound(heading) + 1 ) = 0 Then If (Ubound(outline) + 1) MOD (Ubound(heading) + 1 ) = 0 Then
For i = 0 To (Ubound(outline)) For i = 0 To (Ubound(outline))
oAnchor2Name = &quot;Outline &quot; + level + &quot;.&quot; + (i Mod (Ubound(heading) + 1)) oAnchor2Name = &quot;Оглавление &quot; + level + &quot;.&quot; + (i Mod (Ubound(heading) + 1))
If i &lt;= Ubound(heading) Then If i &lt;= Ubound(heading) Then
createAnchor(heading(i Mod (Ubound(heading) + 1)),oAnchor2Name) createAnchor(heading(i Mod (Ubound(heading) + 1)),oAnchor2Name)
EndIf EndIf
createLink(outline(i),&quot;&quot;,oAnchor2Name) createLink(outline(i),&quot;&quot;,oAnchor2Name)
Next i Next i
Else Else
message = getTranslation(&quot;TOCErrorContentsNotMatchHeadings1&quot;) &amp; &quot; &quot; &amp; level &amp; &quot; (&quot; &amp; (Ubound(outline)+1) &amp;&quot;) &quot; &amp; _ MsgBox (&quot;Число Оглавлений &quot;+ level +&quot; уровня (&quot;+(Ubound(outline)+1) +&quot;) не кратно числу Заголовоков &quot; + level + &quot; уровня (&quot; + (Ubound(heading)+1) + &quot;)&quot;
getTranslation(&quot;TOCErrorContentsNotMatchHeadings2&quot;) &amp; &quot; &quot; &amp; level &amp; &quot; &quot; &amp; _
getTranslation(&quot;TOCErrorContentsNotMatchHeadings3&quot;) &amp; &quot; (&quot; &amp; (Ubound(heading)+1) &amp; &quot;)&quot;
showTOCLinksDialog(message, heading(), outline() )
EndIf EndIf
ElseIf Ubound(outline) = -1 Then ElseIf Ubound(outline) = -1 Then
&apos; MsgBox (getTranslation(&quot;TOCErrorNoContents1&quot;) &amp; &quot; &quot; &amp; level &amp; &quot; &quot; &amp; getTranslation(&quot;TOCErrorNoContents2&quot;))
&apos;MsgBox (&quot;Не могу сделать ссылки в оглавлении. Оглавлений &quot;+ level + &quot; уровня не найдено.&quot;)
ElseIf Ubound(heading) = -1 Then ElseIf Ubound(heading) = -1 Then
MsgBox getTranslation(&quot;TOCErrorNoHeadings1&quot;) &amp; &quot; &quot; &amp; level &amp; &quot; &quot; &amp; getTranslation(&quot;TOCErrorNoHeadings2&quot;) MsgBox (&quot;Не могу сделать ссылки в оглавлении. Заголовоков &quot;+ level + &quot; уровня не найдено.&quot;)
EndIf EndIf
End Sub End Sub
@ -130,100 +127,12 @@ Function getOutlineWithLevel(curNum)
Wend Wend
Next i Next i
Else Else
Mri enum1Element
EndIf EndIf
Wend Wend
getOutlineWithLevel = par() getOutlineWithLevel = par()
End Function End Function
Sub showTOCLinksDialog(message As String, heading() As Object, outline() As Object)
Dim pDialog As Object
Dim grid As Object
Dim headingsColumn As Object
Dim tocColumn As Object
Dim oGridControl As Object
Dim oColumnModel As Object
Dim oDataModel As Object
Dim rect As Object
Dim i As Integer
Dim j As Integer
Dim outlineCell As String
Dim headingCell As String
DialogLibraries.LoadLibrary(&quot;ePublishing&quot;)
pDialog = CreateUnoDialog( DialogLibraries.ePublishing.toc_links )
&apos;grid = pDialog.getControl(&quot;grid&quot;)
grid = pDialog.Model.createInstance(&quot;com.sun.star.awt.grid.UnoControlGridModel&quot;)
grid.Name = &quot;tocGrid&quot;
grid.ShowColumnHeader = True
grid.ShowRowHeader = True
grid.VScroll = true
grid.Sizeable = true
grid.Step = 0
oColumnModel = createUnoService( &quot;com.sun.star.awt.grid.DefaultGridColumnModel&quot;)
tocColumn = createUnoService( &quot;com.sun.star.awt.grid.GridColumn&quot;)
tocColumn.Title = getTranslation(&quot;tocItemText&quot;)
tocColumn.ColumnWidth = 100
tocColumn.Resizeable = true
&apos;tocColumn.Flexibility = true
oColumnModel.addColumn( tocColumn )
headingsColumn = createUnoService( &quot;com.sun.star.awt.grid.GridColumn&quot;)
headingsColumn.Title = getTranslation(&quot;headingItemText&quot;)
headingsColumn.ColumnWidth = 100
headingsColumn.Resizeable = true
&apos;headingsColumn.Flexibility = true
oColumnModel.addColumn( headingsColumn )
grid.ColumnModel = oColumnModel
&apos;grid.Sizeable = False
&apos;gridStep = 0
oDataModel = createUnoService( &quot;com.sun.star.awt.grid.DefaultGridDataModel&quot;)
If Ubound(outline) &gt; Ubound(heading) Then
For i = 0 To (Ubound(outline))
outlineCell = outline(i).getString()
j = i MOD (Ubound(heading) + 1)
headingCell = heading(j).getString()
oDataModel.addRow ( i+1 , Array(outlineCell, headingCell) )
Next
Else
For i = 0 To (Ubound(heading))
headingCell = heading(i).getString()
If i &gt; Ubound(outline) Then
outlineCell = &quot;&quot;
Else
outlineCell = outline(i).getString()
EndIf
oDataModel.addRow ( i+1 , Array(outlineCell, headingCell) )
Next i
EndIf
grid.GridDataModel = oDataModel
oGridControl = createUnoService(&quot;com.sun.star.awt.grid.UnoControlGrid&quot;)
oGridControl.setModel(grid)
pDialog.addControl(&quot;gridtab&quot;, oGridControl)
rect = pDialog.getPosSize()
oGridControl.setPosSize(10,60,rect.Width - 20,rect.Height - 120, com.sun.star.awt.PosSize.POSSIZE)
pDialog.getControl(&quot;Ok&quot;).Label = getTranslation(&quot;buttonOk&quot;)
pDialog.getControl(&quot;message&quot;).SetText(message)
pDialog.Title = getTranslation(&quot;tocDialogLabel&quot;)
pDialog.Execute()
pDialog.dispose()
End Sub
Sub addToArray(xArray(),vNextElement) Sub addToArray(xArray(),vNextElement)
Dim iUB As Integer Dim iUB As Integer
Dim iLB As Integer Dim iLB As Integer

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,4 @@
<library:element library:name="FootnotesConfig"/> <library:element library:name="FootnotesConfig"/>
<library:element library:name="replaceParaStyle"/> <library:element library:name="replaceParaStyle"/>
<library:element library:name="PageConfig"/> <library:element library:name="PageConfig"/>
<library:element library:name="EndnotesConversion"/>
<library:element library:name="toc_links"/>
</library:library> </library:library>

View file

@ -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="journals" script:language="StarBasic">Private sub journalsMark36 <script:module xmlns:script="http://openoffice.org/2000/script" script:name="journals" script:language="StarBasic">Private sub journalsMark7
End sub End sub
Dim templateName As String Dim templateName As String
@ -25,11 +25,10 @@ Private Sub makeUpIssue
Dim tmp As String Dim tmp As String
Dim nSections As Long Dim nSections As Long
description = getTranslation(&quot;complileJournalIssueConfirmation&quot;) description = &quot;Вы уверены, что хотите запустить сборку выпуска ?&quot;
If NOT confirm(description) Then If NOT confirm(description) Then
Exit Sub Exit Sub
EndIf EndIf
setZoomToSpeedUpTasks()
EIFN = &quot;ЭиФН&quot; EIFN = &quot;ЭиФН&quot;
PHA = &quot;ФА&quot; PHA = &quot;ФА&quot;
@ -43,7 +42,7 @@ Private Sub makeUpIssue
&apos;Exit if no sections in document or document not saved &apos;Exit if no sections in document or document not saved
If oFilename = &quot;&quot; Then If oFilename = &quot;&quot; Then
MsgBox getTranslation(&quot;compileJournalIssueNoCurFilename&quot;) MsgBox &quot;Сначала сохраните выпуск в папке с файлами статьей&quot;
Exit Sub Exit Sub
End If End If
@ -64,8 +63,8 @@ Private Sub makeUpIssue
firstPage = page firstPage = page
oViewCursor.jumpToPage(page) oViewCursor.jumpToPage(page)
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor) oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
statusIndicator.Start(getTranslation(&quot;compileJournalIssueStatusInProgerss&quot;),30) statusIndicator.Start(&quot;Сборка выпуска начата, подождите&quot;,30)
For i = 1 To 50 For i = 1 To 25
&apos;Find section file &apos;Find section file
FilePath = findArticleFile(path,i) FilePath = findArticleFile(path,i)
If FilePath=&quot;&quot; Then If FilePath=&quot;&quot; Then
@ -139,7 +138,7 @@ Private Sub makeUpIssue
&apos;ThisComponent.FootnoteSettings.FootnoteCounting=1 &apos;ThisComponent.FootnoteSettings.FootnoteCounting=1
&apos;setHeadingsOutlineLevels &apos;setHeadingsOutlineLevels
statusIndicator.end() statusIndicator.end()
MsgBox getTranslation(&quot;compileJournalIssueFinished&quot;) MsgBox &quot;Сборка выпуска завершена.&quot;
End Sub End Sub
Private Sub setPageNumbers() Private Sub setPageNumbers()
@ -198,7 +197,7 @@ Private Function lastPageNum(i As Integer)
Exit Do Exit Do
End If End If
If curPageNum = 0 Then If curPageNum = 0 Then
MsgBox getTranslation(&quot;lastPageNumNotFound&quot;) MsgBox &quot;Произошла ошибка при нахождении последней страницы статьи&quot;
Exit Do Exit Do
End If End If
@ -223,13 +222,13 @@ Private Function getUDK()
getFirstTextInStyle(&quot;УДК&quot;) getFirstTextInStyle(&quot;УДК&quot;)
foundUDK = oViewCursor.Text.createTextCursorByRange(oViewCursor).getString() foundUDK = oViewCursor.Text.createTextCursorByRange(oViewCursor).getString()
If foundUDK = &quot;&quot; Then If foundUDK = &quot;&quot; Then
getUDK = getTranslation(&quot;compileJournalIssueSetUDKDummyText&quot;) getUDK = &quot;Задать УДК&quot;
Else Else
getUDK = foundUDK getUDK = foundUDK
backspace backspace
sendRM sendRM
End If End If
Thiscomponent.CurrentController.select(oSavePosition) oViewCursor.goToRange(oSavePosition, false)
End Function End Function
Private Function getCopyright() Private Function getCopyright()
@ -263,7 +262,7 @@ Private Function getCopyright()
oViewCursor.goToRange(oSavePosition, false) oViewCursor.goToRange(oSavePosition, false)
Exit Function Exit Function
Else Else
getCopyright = getTranslation(&quot;compileJournalIssueCopyrightDummyText&quot;) getCopyright = &quot;© &quot; + &quot;Фамилия И.О.&quot;
EndIf EndIf
End If End If
oViewCursor.goToRange(oSavePosition, false) oViewCursor.goToRange(oSavePosition, false)
@ -280,7 +279,7 @@ Private Function getAuthor()
If authors &lt;&gt; &quot;&quot; Then If authors &lt;&gt; &quot;&quot; Then
getAuthor = authors getAuthor = authors
Else Else
getAuthor = getTranslation(&quot;compileJournalIssueAuthorDummyText&quot;) getAuthor = &quot;Фамилия И.О.&quot;
End If End If
oViewCursor.goToRange(oSavePosition, false) oViewCursor.goToRange(oSavePosition, false)
End Function End Function
@ -296,7 +295,7 @@ Private Function getArticleHeader()
If articleHeader &lt;&gt; &quot;&quot; Then If articleHeader &lt;&gt; &quot;&quot; Then
getArticleHeader = articleHeader getArticleHeader = articleHeader
Else Else
getArticleHeader = getTranslation(&quot;compileJournalIssueArticleTitleDummyText&quot;) getArticleHeader = &quot;Название статьи&quot;
End If End If
oViewCursor.goToRange(oSavePosition, false) oViewCursor.goToRange(oSavePosition, false)
End Function End Function
@ -307,7 +306,7 @@ Private Function getSectionX(section As String)
Dim startPage As String Dim startPage As String
Dim endPage As String Dim endPage As String
If section = &quot;&quot; Then If section = &quot;&quot; Then
section = getTranslation(&quot;compileJournalIssueSectionDummyText&quot;) section = &quot;Задайте название радела!&quot;
End If End If
oViewCursor = ThisComponent.CurrentController.getViewCursor() oViewCursor = ThisComponent.CurrentController.getViewCursor()
startPage = oViewcursor.getPage() startPage = oViewcursor.getPage()
@ -449,7 +448,7 @@ Private Sub setDefaultFirstPageMetadata(curStyle As Object,i As Integer)
insertUserField(oViewCursor,&quot;article&quot; + i + &quot;LastPage&quot;,&quot;00&quot; ) insertUserField(oViewCursor,&quot;article&quot; + i + &quot;LastPage&quot;,&quot;00&quot; )
&apos;Footer without table &apos;Footer without table
oViewCursor.goToRange(curStyle.FooterText.End, false) oViewCursor.goToRange(curStyle.FooterText.End, false)
insertUserField(oViewCursor,&quot;author&quot; + i + &quot;Copyright&quot;,getTranslation(&quot;compileJournalIssueCopyrightDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;author&quot; + i + &quot;Copyright&quot;,&quot;© Фамилия И.О. &quot; + i )
End Sub End Sub
@ -480,7 +479,7 @@ Private Sub setPHAFirstPageMetadata(curStyle As Object,i As Integer)
insertUserField(oViewCursor,&quot;article&quot; + i + &quot;LastPage&quot;,&quot;00&quot; ) insertUserField(oViewCursor,&quot;article&quot; + i + &quot;LastPage&quot;,&quot;00&quot; )
oViewCursor.goToRange(curStyle.FooterText.End, false) oViewCursor.goToRange(curStyle.FooterText.End, false)
insertUserField(oViewCursor,&quot;author&quot; &amp; i &amp; &quot;Copyright&quot;,getTranslation(&quot;compileJournalIssueCopyrightDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;author&quot; + i + &quot;Copyright&quot;,&quot;© Фамилия И.О. &quot; + i )
End Sub End Sub
@ -500,10 +499,10 @@ Private Sub setEIFNFirstPageMetadata(curStyle,i)
oViewCursor.gotoEndOfLine(false) oViewCursor.gotoEndOfLine(false)
oViewCursor.goright(1,false) oViewCursor.goright(1,false)
oViewCursor.gotoEndOfLine(false) oViewCursor.gotoEndOfLine(false)
insertUserField(oViewCursor,&quot;article&quot; &amp; i &amp; &quot;LastPage&quot;,&quot;00&quot; ) insertUserField(oViewCursor,&quot;article&quot; + i + &quot;LastPage&quot;,&quot;00&quot; )
oViewCursor.goright(1,false) oViewCursor.goright(1,false)
&apos;Добавить УДК &apos;Добавить УДК
insertUserField(oViewCursor,&quot;article&quot; &amp; i &amp; &quot;UDK&quot;,&quot;УДК &quot;+ i + &quot;.&quot; + i) insertUserField(oViewCursor,&quot;article&quot; + i + &quot;UDK&quot;,&quot;УДК &quot;+ i + &quot;.&quot; + i)
&apos;rightHeaderCell &apos;rightHeaderCell
rightHeaderCell = oHeaderTable.getCellByPosition(1,0).getStart() rightHeaderCell = oHeaderTable.getCellByPosition(1,0).getStart()
@ -512,22 +511,22 @@ Private Sub setEIFNFirstPageMetadata(curStyle,i)
oViewCursor.gotoEndOfLine(false) oViewCursor.gotoEndOfLine(false)
oViewCursor.goright(1,false) oViewCursor.goright(1,false)
oViewCursor.gotoEndOfLine(false) oViewCursor.gotoEndOfLine(false)
insertUserField(oViewCursor,&quot;article&quot; &amp; i &amp; &quot;LastPage&quot;,&quot;00&quot; ) insertUserField(oViewCursor,&quot;article&quot; + i + &quot;LastPage&quot;,&quot;00&quot; )
&apos; go to page number 2nd place &apos; go to page number 2nd place
oViewCursor.goright(1,false) oViewCursor.goright(1,false)
oViewCursor.gotoEndOfLine(false) oViewCursor.gotoEndOfLine(false)
insertUserField(oViewCursor,&quot;article&quot; &amp; i * &quot;Num&quot;,&quot;&quot; &amp; i ) insertUserField(oViewCursor,&quot;article&quot; + i + &quot;Num&quot;,&quot;&quot; + i )
oFooterTableLeft = curStyle.FooterTextLeft.CreateEnumeration().nextElement oFooterTableLeft = curStyle.FooterTextLeft.CreateEnumeration().nextElement
rightHeaderCell = oFooterTableLeft.getCellByPosition(1,0).getStart() rightHeaderCell = oFooterTableLeft.getCellByPosition(1,0).getStart()
oViewCursor.goToRange(rightHeaderCell, false) oViewCursor.goToRange(rightHeaderCell, false)
insertUserField(oViewCursor,&quot;author&quot; &amp; i &amp; &quot;Copyright&quot;,getTranslation(&quot;compileJournalIssueCopyrightDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;author&quot; + i + &quot;Copyright&quot;,&quot;© Фамилия И.О. &quot; + i )
&apos;TODO!!!!SECOND PAGE &apos;TODO!!!!SECOND PAGE
oFooterTableRight = curStyle.FooterTextRight.CreateEnumeration().nextElement oFooterTableRight = curStyle.FooterTextRight.CreateEnumeration().nextElement
leftHeaderCell = oFooterTableRight.getCellByPosition(0,0).getStart() leftHeaderCell = oFooterTableRight.getCellByPosition(0,0).getStart()
oViewCursor.goToRange(leftHeaderCell, false) oViewCursor.goToRange(leftHeaderCell, false)
insertUserField(oViewCursor,&quot;author&quot; &amp; i &amp; &quot;Copyright&quot;,getTranslation(&quot;compileJournalIssueCopyrightDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;author&quot; + i + &quot;Copyright&quot;,&quot;© Фамилия И.О. &quot; + i )
End Sub End Sub
@ -546,7 +545,7 @@ Private Sub setAritclePageHeaders(i)
oViewCursor = ThisComponent.CurrentController.getViewCursor() oViewCursor = ThisComponent.CurrentController.getViewCursor()
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor) oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;) pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
page = findFirstPageNumberWithStyle(&quot;Статья &quot; &amp; i &amp; &quot; стр.1&quot;) page = findFirstPageNumberWithStyle(&quot;Статья &quot; + i + &quot; стр.1&quot;)
oViewCursor.jumpToPage(page) oViewCursor.jumpToPage(page)
articleStartPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor) articleStartPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
@ -574,11 +573,11 @@ Private Sub setAritclePageHeaders(i)
rightHeaderCell = rightHeaderTable.getCellByPosition(0,0).getStart() rightHeaderCell = rightHeaderTable.getCellByPosition(0,0).getStart()
oViewCursor.goToRange(rightHeaderCell, false) oViewCursor.goToRange(rightHeaderCell, false)
If templateName = &quot;&quot; Then If templateName = &quot;&quot; Then
insertUserField(oViewCursor,&quot;rightHeader&quot; &amp; i ,getTranslation(&quot;compileJournalIssueAuthorDummyText&quot;) &amp; &quot; &quot; &amp; getTranslation(&quot;compileJournalIssueArticleTitleDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;rightHeader&quot; + i ,&quot;Фамилия И.О. Название статьи&quot; + i )
ElseIf templateName = PHA Then ElseIf templateName = PHA Then
insertUserField(oViewCursor,&quot;rightHeader&quot; &amp; i ,getTranslation(&quot;compileJournalIssueAuthorDummyText&quot;) &amp; &quot; &quot; &amp; getTranslation(&quot;compileJournalIssueArticleTitleDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;rightHeader&quot; + i ,&quot;Фамилия И.О. Название статьи&quot; + i )
ElseIf templateName = EIFN Then ElseIf templateName = EIFN Then
insertUserField(oViewCursor,&quot;rightHeader&quot; &amp; i ,getTranslation(&quot;compileJournalIssueArticleTitleDummyText&quot;) &amp; &quot; &quot; + i ) insertUserField(oViewCursor,&quot;rightHeader&quot; + i ,&quot;Название статьи &quot; + i )
rightHeaderCell = rightHeaderTable.getCellByPosition(2,0).getStart() rightHeaderCell = rightHeaderTable.getCellByPosition(2,0).getStart()
oViewCursor.goToRange(rightHeaderCell, false) oViewCursor.goToRange(rightHeaderCell, false)
insertLinkedImage(CStr(i),&quot;headerImageRight&quot;) insertLinkedImage(CStr(i),&quot;headerImageRight&quot;)
@ -589,15 +588,15 @@ Private Sub setAritclePageHeaders(i)
If templateName = &quot;&quot; Then If templateName = &quot;&quot; Then
leftHeaderCell = leftHeaderTable.getCellByPosition(1,0).getStart() leftHeaderCell = leftHeaderTable.getCellByPosition(1,0).getStart()
oViewCursor.goToRange(leftHeaderCell, false) oViewCursor.goToRange(leftHeaderCell, false)
insertUserField(oViewCursor,&quot;leftHeader&quot; &amp; i ,getTranslation(&quot;compileJournalIssueSectionDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;leftHeader&quot; + i ,&quot;Название раздела&quot; + i )
ElseIf templateName = PHA Then ElseIf templateName = PHA Then
leftHeaderCell = leftHeaderTable.getCellByPosition(1,0).getStart() leftHeaderCell = leftHeaderTable.getCellByPosition(1,0).getStart()
oViewCursor.goToRange(leftHeaderCell, false) oViewCursor.goToRange(leftHeaderCell, false)
insertUserField(oViewCursor,&quot;leftHeader&quot; &amp; i ,getTranslation(&quot;compileJournalIssueSectionDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;leftHeader&quot; + i ,&quot;Название раздела&quot; + i )
ElseIf templateName = EIFN Then ElseIf templateName = EIFN Then
leftHeaderCell = leftHeaderTable.getCellByPosition(2,0).getStart() leftHeaderCell = leftHeaderTable.getCellByPosition(2,0).getStart()
oViewCursor.goToRange(leftHeaderCell, false) oViewCursor.goToRange(leftHeaderCell, false)
insertUserField(oViewCursor,&quot;leftHeader&quot; &amp; i ,getTranslation(&quot;compileJournalIssueInitialsAuthorDummyText&quot;) &amp; i ) insertUserField(oViewCursor,&quot;leftHeader&quot; + i ,&quot;И.О. Фамилия&quot; + i )
leftHeaderCell = leftHeaderTable.getCellByPosition(0,0).getStart() leftHeaderCell = leftHeaderTable.getCellByPosition(0,0).getStart()
oViewCursor.goToRange(leftHeaderCell, false) oViewCursor.goToRange(leftHeaderCell, false)
insertLinkedImage(CStr(i),&quot;headerImageLeft&quot;) insertLinkedImage(CStr(i),&quot;headerImageLeft&quot;)
@ -629,7 +628,6 @@ Private Sub setArticleUniqPageStyles(i)
Dim clonedStyle As Object Dim clonedStyle As Object
Dim clonedStyleName As String Dim clonedStyleName As String
Dim oViewCursor As Object Dim oViewCursor As Object
Dim newPageName As String
oViewCursor = ThisComponent.CurrentController.getViewCursor() oViewCursor = ThisComponent.CurrentController.getViewCursor()
pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;) pageStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
&apos;Constants &apos;Constants
@ -654,8 +652,8 @@ Private Sub setArticleUniqPageStyles(i)
curPageStyle.FollowStyle = pageName curPageStyle.FollowStyle = pageName
previousPageStyle = curPageStyle previousPageStyle = curPageStyle
ElseIf oViewCursor.getPage() &lt;&gt; curPageNum Then ElseIf oViewCursor.getPage() &lt;&gt; curPageNum Then
&apos;Пришли в конец. &apos;Прили в конец.
&apos;MsgBox &quot;Статья закончилась!&quot; MsgBox &quot;Статья закончилась!&quot;
Exit Sub Exit Sub
Else Else
Exit Sub Exit Sub
@ -663,11 +661,7 @@ Private Sub setArticleUniqPageStyles(i)
&apos;Iterate article page number &apos;Iterate article page number
articlePageNum = articlePageNum + 1 articlePageNum = articlePageNum + 1
&apos;GO TO NEXT PAGE &apos;GO TO NEXT PAGE
If Not oViewCursor.jumpToNextPage() Then oViewCursor.jumpToNextPage()
MsgBox &quot;setArticleUniqPageStyles failed&quot;
End
EndIf
curPageStyleName = getNextPageStyleName() curPageStyleName = getNextPageStyleName()
Loop Loop
@ -1035,7 +1029,7 @@ Private Sub updateLastPageFields
articleNamePostfix = &quot; &quot; articleNamePostfix = &quot; &quot;
Dim statusIndicator as Object Dim statusIndicator as Object
statusIndicator = ThisComponent.getCurrentController.statusIndicator statusIndicator = ThisComponent.getCurrentController.statusIndicator
statusIndicator.Start(getTranslation(&quot;compileJournalIssueStatusUpdateLastPageNumbers&quot;),30) statusIndicator.Start(&quot;Производится обновление полей последних номеров страниц, подождите&quot;,30)
enum1 = ThisComponent.Text.createEnumeration enum1 = ThisComponent.Text.createEnumeration
While enum1.hasMoreElements While enum1.hasMoreElements
enum1Element = enum1.nextElement enum1Element = enum1.nextElement
@ -1136,278 +1130,248 @@ sub backspace
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;) dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
dispatcher.executeDispatch(document, &quot;.uno:SwBackspace&quot;, &quot;&quot;, 0, Array()) dispatcher.executeDispatch(document, &quot;.uno:SwBackspace&quot;, &quot;&quot;, 0, Array())
end Sub end Sub
Sub shrinkPageContent
Sub configureCursorPositionForContentShrink() Dim oViewCursor As Object &apos;View cursor
&apos; Globalscope.BasicLibraries.LoadLibrary(&quot;MRILib&quot;) Dim oTextCursor As Object &apos;Text cursor
Dim oViewCursor As Object Dim oViewCurInitPosition As Object
Dim oTextCursor As Object Dim oSaveEndSelection &apos;Text cursor
Dim curSelection As Object Dim oEnum &apos;Cursor enumeration
Dim selectionTextRange As Object Dim oPar &apos;Current paragraph
Dim nextChar As String Dim sTextContent$ &apos;Service name for text content.
Dim prefChar As String Dim scaleWidthShrinkValue As Integer
oViewCursor = ThisComponent.CurrentController.getViewCursor() Dim scaleCharHeight As Integer
fixViewCursor() Dim scaleIntervalHeight As Integer
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor) Dim kernShrinkValue As Integer
&apos;At start of Para
oTextCursor.collapseToEnd()
If oTextCursor.isStartOfParagraph() AND NOT oTextCursor.isEndOfParagraph() Then
oTextCursor.goLeft(1,false)
EndIf
oViewCursor.goToRange(oTextCursor,false)
End Sub
Sub fixViewCursor()
Dim oViewCursor As Object
Dim curSelection As Object
Dim selectionTextRange As Object
oViewCursor = ThisComponent.CurrentController.getViewCursor()
curSelection = ThisComponent.getCurrentSelection()
If Not curSelection.supportsService(&quot;com.sun.star.text.TextRanges&quot;) Then
selectionTextRange = curSelection.Anchor
oViewCursor.JumpToFirstPage(false)
oViewCursor.goToRange(selectionTextRange,false)
EndIf
End Sub
Function isContentPageChanged(initPosition As Object,initPageNum As String) As Boolean
Dim oViewCursor As Object
Dim oTextCursor As Object
isShrinkPageSucceded = false
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCursor.goToRange(initPosition,false)
If (oViewCursor.getPage &lt;&gt; initPageNum) Then
isContentPageChanged = true
EndIf
End Function
Function breakParaAtCursor() As Object
Dim oViewCursor As Object
Dim oTextCursor As Object
Dim leftMargin As Long
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oTextCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
If NOT oTextCursor.isEndOfParagraph() Then
oTextCursor.goLeft(1,false)
oTextCursor.goRight(2,true)
insertHyphen(oTextCursor)
oTextCursor.goLeft(1,false)
oViewCursor.goToRange(oTextCursor,false)
leftMargin = oViewCursor.ParaLeftMargin
insertPara
oViewCursor.ParaFirstLineIndent = leftMargin
oTextCursor.goLeft(1,false)
oViewCursor.goToRange(oTextCursor,false)
breakParaAtCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
Else
&apos;oTextCursor.goRight(1,false)
&apos;oViewCursor.goToRange(oTextCursor,false)
&apos;oViewCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
&apos;oTextCursor.goLeft(1,false)
&apos;oViewCursor.goToRange(oTextCursor,false)
breakParaAtCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
EndIf
End Function
sub insertPara
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
dispatcher.executeDispatch(document, &quot;.uno:InsertPara&quot;, &quot;&quot;, 0, Array())
end sub
Function canShrinkContent() As Boolean
Dim oViewCursor As Object
Dim oTextCursor As Object
Dim oSavePosition As Object
Dim oStartPosition As Object
Dim initPageNum As Long
Dim startPageNum As Long
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oSavePosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
canShrinkContent = true
&apos;In endntote footnote or table shrink is not possible
If oViewCursor.Text.supportsService(&quot;com.sun.star.text.Endnote&quot;) OR _
oViewCursor.Text.supportsService(&quot;com.sun.star.text.Footnote&quot;) OR _
oViewCursor.Text.supportsService(&quot;com.sun.star.text.CellProperties&quot;) Then
canShrinkContent = false
oViewCursor.goToRange(oSavePosition,false)
Exit Function
EndIf
initPageNum = oViewcursor.getPage()
oViewCursor.JumpToPreviousPage(false)
oViewCursor.jumpToStartOfPage()
startPageNum = oViewcursor.getPage()
&apos;No previous page exists
If startPageNum = initPageNum Then
oViewCursor.goToRange(oSavePosition,false)
canShrinkContent = false
Exit Function
EndIf
&apos;If current paragraph has page break before
If oSavePosition.BreakType &lt;&gt; 0 Then
oTextCursor = oSavePosition.Text.createTextCursorByRange(oSavePosition)
oTextCursor.gotoStartOfParagraph(false)
oViewCursor.goToRange(oTextCursor,false)
If oViewCursor.getPage() = initPageNum Then
canShrinkContent = false
oViewCursor.goToRange(oSavePosition,false)
Exit Function
EndIf
EndIf
oViewCursor.goToRange(oSavePosition,false)
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
Do While oViewcursor.getPage() = initPageNum
oTextCursor.gotoPreviousParagraph(false)
oViewCursor.goToRange(oTextCursor,false)
If oTextCursor.BreakType &lt;&gt; 0 AND oViewcursor.getPage() = initPageNum Then
canShrinkContent = false
oViewCursor.goToRange(oSavePosition,false)
Exit Function
EndIf
Loop
oViewCursor.goToRange(oSavePosition,false)
End Function
Function shrinkPageContent() As Boolean
Dim oViewCursor As Object
Dim oTextCursor As Object
Dim initPosition As Object
Dim initPageNum As String
Dim oSaveEndSelection As Object
Dim oEnum As Variant
Dim oPar As Object
Dim startOfPara As Boolean Dim startOfPara As Boolean
Dim targetContent() As Object &apos;saveCurrentVersion
Dim delta As Double kernShrinkValue = 8
Dim rounds As Integer scaleWidthShrinkValue = 7
delta = 0.1 scaleCharHeight = 2
rounds = 3 scaleIntervalHeight = 3
Dim roundsLineHeight As Integer sTextContent = &quot;com.sun.star.text.TextContent&quot;
roundsLineHeight = 3
Dim i As Integer
Dim j As Integer
shrinkPageContent = false
oViewCursor = ThisComponent.CurrentController.getViewCursor() oViewCursor = ThisComponent.CurrentController.getViewCursor()
oViewCurInitPosition = oViewcursor.Text.createTextCursorByRange(oViewCursor)
&apos;Check if we are at start of paragraph go to the end of previous paragraph
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isStartOfParagraph() Then
oViewCursor.goLeft(1,false)
If Len(oViewCursor.String) &lt;&gt; 1 Then
oViewCursor.goRight(1,false)
End If
End If
configureCursorPositionForContentShrink()
If Not canShrinkContent() Then &apos;Move right to select left and right characters and save position to the right
Exit Function oViewCursor.goRight(1,false)
EndIf oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
initPageNum = oViewcursor.getPage() &apos;Select last 2 characters
initPosition = breakParaAtCursor() oViewCursor.goLeft(2,true)
oViewcursor.goToRange(initPosition,false) If Len(oViewCursor.String) = 2 Then
oViewCursor.JumpToPreviousPage(false) oLastChars = oViewCursor.Text.createTextCursorByRange(oViewCursor)
&apos;Insert hyphen if needed
insertHyphen(oLastChars,oViewCursor)
End If
&apos;Return to initial position
oViewCursor.gotoRange(oSaveEndSelection,false) &apos;Go to end of text to check page changes
oViewCursor.goLeft(1,false)
&apos;Set saved position to initial state
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
oViewCursor.jumpToPreviousPage()
oViewCursor.jumpToStartOfPage() oViewCursor.jumpToStartOfPage()
startPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor) oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
targetContent = selectContentToShrink(initPosition,startPosition) &apos;If one of textRanges is Footnote or Endnote we can&apos;t select them so it is better to exit now
For i = LBound(targetContent) To Ubound(targetContent) If oTextCursor.Text.supportsService(&quot;com.sun.star.text.Endnote&quot;) OR oTextCursor.Text.supportsService(&quot;com.sun.star.text.Footnote&quot;) Or oTextCursor.Text.supportsService(&quot;com.sun.star.text.CellProperties&quot;) Then
shrinkContentSpacing(targetContent(i)) shrinkPageContent = false
If isContentPageChanged(initPosition, initPageNum) Then oViewCursor.gotoRange(oViewCurInitPosition,false)
Exit Function Exit Sub
EndIf EndIf
Next i If oSaveEndSelection.Text.supportsService(&quot;com.sun.star.text.Endnote&quot;) OR oSaveEndSelection.Text.supportsService(&quot;com.sun.star.text.Footnote&quot;) Or oTextCursor.Text.supportsService(&quot;com.sun.star.text.CellProperties&quot;) Then
&apos;TODO: Уменьшая отступы каждого параграфа от и до следующего shrinkPageContent = false
&apos; а также уменьшая кернинг, межстрочное расстояние и кегль oViewCursor.gotoRange(oViewCurInitPosition,false)
For j = 0 To rounds Exit Sub
For i = LBound(targetContent) To Ubound(targetContent)
If (j &gt; 0) Then
decreaseContentCharHeight(targetContent(i), delta)
EndIf EndIf
If shrinkContentWithKerning(targetContent(i)) Then oTextCursor.gotoRange(oSaveEndSelection,true)
balanceContentTail(targetContent(i),false) oViewCursor.gotoRange(oSaveEndSelection,false) &apos;Go to end of text to check page changes
EndIf
If isContentPageChanged(initPosition, initPageNum) Then
Exit Function
EndIf
Next i
Next j
For j = 1 To roundsLineHeight
For i = LBound(targetContent) To Ubound(targetContent)
decreaseIntervalHeight(targetContent(i))
If isContentPageChanged(initPosition, initPageNum) Then
Exit Function
EndIf
Next i
Next j
For j = 1 To roundsLineHeight
For i = LBound(targetContent) To Ubound(targetContent)
increaseIntervalHeight(targetContent(i))
Next i
Next j
For i = LBound(targetContent) To Ubound(targetContent)
increaseContentCharHeight(targetContent(i), delta * rounds )
Next i
End Function If shrinkIntervalHeight(oTextCursor,oViewCursor,scaleIntervalHeight) Then
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
Function increaseIntervalHeight(oContent As Object) As Boolean If oTextCursor.isEndOfParagraph() Then
increaseIntervalHeight = false pos1 = oViewCursor.getPage()
Dim oParEnum As Object oViewCursor.goRight(1,false)
Dim oPar As Object pos2 = oViewCursor.getPage()
Dim oSecEnum As Object &apos;If we moved right to the next para and page haven&apos;t changed insert pageBreak
Dim oParSection As Object If pos1 = pos2 Then
Dim pageNum As Integer insertPageBreak
Dim lineSpacing As Object
If Not IsMissing(oContent.ParaLineSpacing) Then
lineSpacing = oContent.ParaLineSpacing
If lineSpacing.Mode = 3 Then
lineSpacing.Height = lineSpacing.Height / 0.98
oContent.ParaLineSpacing = lineSpacing
increaseIntervalHeight = true
End If End If
Else
insertPageBreak
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
oTextCursor.ParaFirstLineIndent = 0
End If End If
End Function
Function decreaseIntervalHeight(oContent As Object) As Boolean
decreaseIntervalHeight = false
Dim oParEnum As Object
Dim oPar As Object
Dim oSecEnum As Object
Dim oParSection As Object
Dim pageNum As Integer
Dim lineSpacing As Object
If Not IsMissing(oContent.ParaLineSpacing) Then
lineSpacing = oContent.ParaLineSpacing
If lineSpacing.Mode = 3 Then
lineSpacing.Height = lineSpacing.Height * 0.98
oContent.ParaLineSpacing = lineSpacing
decreaseIntervalHeight = true
End If End If
EndIf
End Function
Sub decreaseContentCharHeight(oContent As Object, delta As double) Exit Sub
Dim contentEnum As Object&apos;paragraph enumeration End If
Dim textContentElement As Object&apos;current paragraph If shrinkCharHeight(oTextCursor,oViewCursor,scaleCharHeight) Then
Dim curHeight As Double oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
Dim oTextCursor As Object If oTextCursor.isEndOfParagraph() Then
contentEnum = oContent.createEnumeration() pos1 = oViewCursor.getPage()
Do While contentEnum.hasMoreElements() oViewCursor.goRight(1,false)
textContentElement = contentEnum.nextElement() pos2 = oViewCursor.getPage()
oTextCursor = textContentElement.Text.createTextCursorByRange(textContentElement) &apos;If we moved right to the next para and page haven&apos;t changed insert pageBreak
curHeight = oTextCursor.charHeight If pos1 = pos2 Then
oTextCursor.charHeight = roundHeight(curHeight) - delta insertPageBreak
Loop End If
Else
insertPageBreak
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
oTextCursor.ParaFirstLineIndent = 0
End If
End If
Exit Sub
End If
If shrinkKern(oTextCursor,oViewCursor,kernShrinkValue) Then
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
If oTextCursor.isEndOfParagraph() Then
pos1 = oViewCursor.getPage()
oViewCursor.goRight(1,false)
pos2 = oViewCursor.getPage()
&apos;If we moved right to the next para and page haven&apos;t changed insert pageBreak
If pos1 = pos2 Then
insertPageBreak
End If
Else
insertPageBreak
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
oTextCursor.ParaFirstLineIndent = 0
End If
End If
Exit Sub
End If
End Sub End Sub
Sub increaseContentCharHeight(oContent As Object, delta As double) Sub splitPages
Dim contentEnum As Object&apos;paragraph enumeration Dim oViewCursor As Object &apos;View cursor
Dim textContentElement As Object&apos;current paragraph Dim oText &apos;Text object in current document
Dim curHeight As Double Dim oSaveEndSelection &apos;Text cursor
Dim oTextCursor As Object &apos;saveCurrentVersion
contentEnum = oContent.createEnumeration() oViewCursor = ThisComponent.CurrentController.getViewCursor()
Do While contentEnum.hasMoreElements() Dim saveFirstLineIndent As Boolean
textContentElement = contentEnum.nextElement()
oTextCursor = textContentElement.Text.createTextCursorByRange(textContentElement) &apos;Check if we are at start of paragraph go to the end of previous paragraph
curHeight = oTextCursor.charHeight If oViewCursor.Text.createTextCursorByRange(oViewCursor).isEndOfParagraph() Then
oTextCursor.charHeight = roundHeight(curHeight) + delta oViewCursor.goRight(1,false)
Loop End If
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isStartOfParagraph() Then
saveFirstLineIndent = true
Else
saveFirstLineIndent = false
End If
oViewCursor.goRight(1,false)
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
&apos;Select last 2 characters
oViewCursor.goLeft(2,true)
If Len(oViewCursor.String) = 2 Then
&apos;Insert hyphen if needed
oLastChars = oViewCursor.Text.createTextCursorByRange(oViewCursor)
insertHyphen(oLastChars,oViewCursor)
End If
&apos;Return to initial position
oViewCursor.gotoRange(oSaveEndSelection,false) &apos;Go to end of text to check page changes
oViewCursor.goLeft(1,false)
insertPageBreak
If Not saveFirstLineIndent Then
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
oTextCursor.ParaFirstLineIndent = 0
End If
End If
End Sub End Sub
Function roundHeight(nHeight) As Double
Function shrinkScaleWidth(oTextCursor,oViewCursor,iterations) As Boolean
Dim oParEnum &apos;paragraph enumeration
Dim oPar &apos;current paragraph
Dim oSecEnum &apos;sections enumeration
Dim oParSection &apos;paragraph text section
Dim pageNum As Integer
pageNum = oViewCursor.getPage()
For i = 1 To iterations Step 1
oParEnum = oTextCursor.createEnumeration()
Do While oParEnum.hasMoreElements()
oPar = oParEnum.nextElement()
If oPar.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
oPar.charScaleWidth = 100 - i
If pageNum &lt;&gt; oViewCursor.getPage() Then
shrinkScaleWidth = true
Exit Function
End If
End If
Loop
Next i
shrinkScaleWidth = false
End Function
Function shrinkKern(oTextCursor,oViewCursor,iterations) As Boolean
Dim oParEnum &apos;paragraph enumeration
Dim oPar &apos;current paragraph
Dim oSecEnum &apos;sections enumeration
Dim oParSection &apos;paragraph text section
Dim pageNum As Integer
pageNum = oViewCursor.getPage()
For i = 2 To iterations Step 2
oParEnum = oTextCursor.createEnumeration()
Do While oParEnum.hasMoreElements()
oPar = oParEnum.nextElement()
If oPar.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
oPar.CharKerning = 0 - i
If pageNum &lt;&gt; oViewCursor.getPage() Then
shrinkKern = true
Exit Function
End If
End If
Loop
Next i
shrinkKern = false
End Function
Function shrinkCharHeight(oTextCursor,oViewCursor,iterations) As Boolean
Dim oParEnum &apos;paragraph enumeration
Dim oPar &apos;current paragraph
Dim oSecEnum &apos;sections enumeration
Dim oParSection &apos;paragraph text section
Dim pageNum As Integer
pageNum = oViewCursor.getPage()
For i = 1 To iterations Step 1
oParEnum = oTextCursor.createEnumeration()
Do While oParEnum.hasMoreElements()
oPar = oParEnum.nextElement()
If oPar.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
oPar.charHeight = roundHeight(oPar.charHeight) - 0.1
If pageNum &lt;&gt; oViewCursor.getPage() Then
shrinkCharHeight = true
Exit Function
End If
End If
Loop
Next i
shrinkCharHeight = false
End Function
Function roundHeight(nHeight)
Dim lHeight As Double Dim lHeight As Double
Dim hHeight As Double Dim hHeight As Double
lHeight = Int(nHeight) lHeight = Int(nHeight)
@ -1423,74 +1387,127 @@ Function roundHeight(nHeight) As Double
roundHeight=lHeight roundHeight=lHeight
End Function End Function
Function shrinkContentSpacing(oContent As Object) As Boolean
&apos; Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
shrinkContentSpacing = false
If oContent.ParaTopMargin &gt; MIN_SPACING_TO_SHRINK Then
oContent.ParaTopMargin = 0
EndIf
If oContent.ParaBottomMargin &gt; MIN_SPACING_TO_SHRINK Then
oContent.ParaTopMargin = 0
EndIf
End Function
Function selectContentToShrink(initPosition As Object, startPosition As Object) Function shrinkIntervalHeight(oTextCursor,oViewCursor,iterations) As Boolean
Dim oViewCursor As Object Dim oParEnum &apos;paragraph enumeration
Dim oTextCursor As Object Dim oPar &apos;current paragraph
Dim startPageNum As Long Dim oSecEnum &apos;sections enumeration
Dim prevPageNum As Long Dim oParSection &apos;paragraph text section
Dim savePosition As Object Dim pageNum As Integer
Dim foundPrevPara As Boolean Dim lineSpacing
Dim targetContent() As Variant pageNum = oViewCursor.getPage()
oViewCursor = ThisComponent.CurrentController.getViewCursor() For i = 1 To iterations Step 1
oViewcursor.goToRange(startPosition,false) oParEnum = oTextCursor.createEnumeration()
prevPageNum = oViewcursor.getPage() Do While oParEnum.hasMoreElements()
oViewcursor.goToRange(initPosition,false) oPar = oParEnum.nextElement()
startPageNum = oViewcursor.getPage() If oPar.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor) lineSpacing = oPar.ParaLineSpacing
Do While startPageNum = oViewcursor.getPage() OR prevPageNum = oViewcursor.getPage() If lineSpacing.Mode = 3 Then
savePosition = oTextCursor.getStart() lineSpacing.Height = lineSpacing.Height * 0.98
oTextCursor.gotoStartOfParagraph(true) oPar.ParaLineSpacing = lineSpacing
oViewCursor.goToRange(oTextCursor,false) End If
oViewCursor.collapseToStart() If pageNum &lt;&gt; oViewCursor.getPage() Then
If Len(oTextCursor.String) &gt; 0 Then shrinkIntervalHeight = true
If (startPageNum = oViewcursor.getPage() OR prevPageNum = oViewcursor.getPage()) Then Exit Function
AddToArray(targetContent,oTextCursor.Text.createTextCursorByRange(oTextCursor)) End If
Else End If
oTextCursor.goToRange(savePosition,false)
oViewCursor.goToRange(oTextCursor,false)
oViewCursor.JumpToStartOfPage(false)
oTextCursor.goToRange(oViewCursor,true)
AddToArray(targetContent,oTextCursor.Text.createTextCursorByRange(oTextCursor))
EndIf
EndIf
foundPrevPara = oTextCursor.gotoPreviousParagraph(false)
If (foundPrevPara = false) Then
Exit Do
EndIf
oTextCursor.gotoEndOfParagraph(false)
oViewCursor.goToRange(oTextCursor,false)
Loop Loop
selectContentToShrink = targetContent Next i
shrinkIntervalHeight = false
End Function End Function
Sub insertPageBreak Sub savecursor
dim document as object Dim oViewCursor As Object &apos;View cursor
dim dispatcher as object Dim oTextCursor &apos;Text cursor
document = ThisComponent.CurrentController.Frame Dim oSaveEndSelection &apos;Text cursor
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;) Dim oEnum &apos;Cursor enumeration
dispatcher.executeDispatch(document, &quot;.uno:InsertPagebreak&quot;, &quot;&quot;, 0, Array()) Dim oText &apos;Text object in current document
Dim oPar &apos;Current paragraph
Dim sTextContent$ &apos;Service name for text content.
sTextContent = &quot;com.sun.star.text.TextContent&quot;
oViewCursor = ThisComponent.CurrentController.getViewCursor()
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
REM oViewCursor.getText.insertString(oViewCursor.getStart(), CHR$(257), False)
&apos;If Not oViewCursor.jumpToPreviousPage() Then Exit Sub
oViewCursor.jumpToPreviousPage()
oViewCursor.jumpToStartOfPage()
&apos;oViewCursor.goUp(10,true)
&apos;oViewCursor.getPage()
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
&apos;oTextCursor.gotoStart(false)
oTextCursor.gotoRange(oSaveEndSelection,true)
oParEnum = oTextCursor.createEnumeration()
Do While oParEnum.hasMoreElements()
Dim oSubSection
Dim oSecEnum
Do While oParEnum.hasMoreElements()
oPar = oParEnum.nextElement()
oPar.charScaleWidth = oPar.charScaleWidth - 1
Dim charHeight
charHeight= oPar.charHeight
Dim lineSpacing
lineSpacing = oPar.ParaLineSpacing
MsgBox lineSpacing.Mode &amp; lineSpacing.Height
If oPar.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
nPars = nPars + 1
oSecEnum = oPar.createEnumeration()
s = s &amp; nPars &amp; &quot;:&quot;
Do While oSecEnum.hasMoreElements()
oParSection = oSecEnum.nextElement()
oParSection.charScaleWidth = oParSection.charScaleWidth - 1
oParSection.CharHeight = oParSection.CharHeight * 0.99
s = s &amp; oParSection.TextPortionType &amp; &quot; Scale &quot; &amp; oParSection.CharScaleWidth &amp; &quot; Scale &quot; &amp; oParSection.CharHeight &amp; &quot;:&quot;
Loop
s = s &amp; CHR$(10)
If nPars MOD 10 = 0 Then
MsgBox s, 0, &quot;Paragraph Text Sections&quot;
s = &quot;&quot;
End If
End If
Loop
Loop
End Sub End Sub
Sub insertHyphen(twoCharactersToHyphen As Object)
Dim oViewCursor As Object
Dim document as Object sub insertPageBreak
Dim dispatcher as Object rem ----------------------------------------------------------------------
oViewCursor = ThisComponent.CurrentController.getViewCursor() rem define variables
oViewCursor.goToRange(twoCharactersToHyphen,false) dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;) dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, &quot;.uno:InsertPagebreak&quot;, &quot;&quot;, 0, Array())
end sub
Sub insertHyphen(oTextCursor,oViewCursor)
Dim lastChars
&apos;lastChars = oTextCursor.getString()
replacementhyp
&apos;MsgBox lastChars
End Sub
sub replacementhyp
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(&quot;com.sun.star.frame.DispatchHelper&quot;)
rem ----------------------------------------------------------------------
dim args1(21) as new com.sun.star.beans.PropertyValue dim args1(21) as new com.sun.star.beans.PropertyValue
args1(0).Name = &quot;SearchItem.StyleFamily&quot; args1(0).Name = &quot;SearchItem.StyleFamily&quot;
args1(0).Value = 2 args1(0).Value = 2
@ -1517,7 +1534,6 @@ Sub insertHyphen(twoCharactersToHyphen As Object)
args1(11).Name = &quot;SearchItem.SearchString&quot; args1(11).Name = &quot;SearchItem.SearchString&quot;
args1(11).Value = &quot;([a-zA-Zа-яА-Я])([a-zA-Zа-яА-Я])&quot; args1(11).Value = &quot;([a-zA-Zа-яА-Я])([a-zA-Zа-яА-Я])&quot;
args1(12).Name = &quot;SearchItem.ReplaceString&quot; args1(12).Name = &quot;SearchItem.ReplaceString&quot;
&apos; &quot;$1 U+00AD $2&quot;
args1(12).Value = &quot;$1­$2&quot; args1(12).Value = &quot;$1­$2&quot;
args1(13).Name = &quot;SearchItem.Locale&quot; args1(13).Name = &quot;SearchItem.Locale&quot;
args1(13).Value = 255 args1(13).Value = 255
@ -1555,7 +1571,7 @@ sub saveCurrentVersion
rem ---------------------------------------------------------------------- rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = &quot;VersionComment&quot; args1(0).Name = &quot;VersionComment&quot;
args1(0).Value = getTranslation(&quot;saveVersionCommentInsertPageBreak&quot;) args1(0).Value = &quot;Вставка разрыва страниц&quot;
dispatcher.executeDispatch(document, &quot;.uno:Save&quot;, &quot;&quot;, 0, args1()) dispatcher.executeDispatch(document, &quot;.uno:Save&quot;, &quot;&quot;, 0, args1())
@ -1598,8 +1614,6 @@ Function getPageNumber(cursor As Object) As String
oField.NumberingType = 4 oField.NumberingType = 4
oField.SubType = com.sun.star.text.PageNumberType.CURRENT oField.SubType = com.sun.star.text.PageNumberType.CURRENT
oTextCursor.Text.insertTextContent(oTextCursor, oField, False) oTextCursor.Text.insertTextContent(oTextCursor, oField, False)
oField.Anchor.CharHidden = False
oField.Anchor.CharHidden = True
getPageNumber = oField.getPresentation(false) getPageNumber = oField.getPresentation(false)
oTextCursor.Text.removeTextContent(oField) oTextCursor.Text.removeTextContent(oField)
End Function End Function

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd"> <!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="selectMenu" dlg:left="14" dlg:top="7" dlg:width="236" dlg:height="308" dlg:closeable="true" dlg:moveable="true" dlg:title="Дваждый кликните на выбранный элемент"> <dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="selectMenu" dlg:left="14" dlg:top="7" dlg:width="182" dlg:height="308" dlg:closeable="true" dlg:moveable="true" dlg:title="Дваждый кликните на выбранный элемент">
<dlg:bulletinboard> <dlg:bulletinboard>
<dlg:menulist dlg:id="ListBox1" dlg:tab-index="0" dlg:left="0" dlg:top="3" dlg:width="234" dlg:height="306"> <dlg:menulist dlg:id="ListBox1" dlg:tab-index="0" dlg:left="0" dlg:top="3" dlg:width="181" dlg:height="306">
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ePublishing.Archive.onSelectMenuItem?language=Basic&amp;location=application" script:language="Script"/> <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ePublishing.Archive.onSelectMenuItem?language=Basic&amp;location=application" script:language="Script"/>
</dlg:menulist> </dlg:menulist>
</dlg:bulletinboard> </dlg:bulletinboard>

View file

@ -10,6 +10,4 @@
<library:element library:name="Archive"/> <library:element library:name="Archive"/>
<library:element library:name="MakeUp"/> <library:element library:name="MakeUp"/>
<library:element library:name="PageStyles"/> <library:element library:name="PageStyles"/>
<library:element library:name="Translations"/>
<library:element library:name="Endnotes"/>
</library:library> </library:library>

View file

@ -1,8 +0,0 @@
<?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="toc_links" dlg:left="74" dlg:top="15" dlg:width="346" dlg:height="284" dlg:closeable="true" dlg:moveable="true">
<dlg:bulletinboard>
<dlg:button dlg:id="Ok" dlg:tab-index="0" dlg:left="125" dlg:top="265" dlg:width="96" dlg:height="17" dlg:value="CommandButton1" dlg:button-type="ok"/>
<dlg:text dlg:id="message" dlg:tab-index="1" dlg:left="5" dlg:top="4" dlg:width="334" dlg:height="24" dlg:value="message" dlg:align="center" dlg:multiline="true"/>
</dlg:bulletinboard>
</dlg:window>

View file

@ -2,9 +2,9 @@
<description xmlns="http://openoffice.org/extensions/update/2006" <description xmlns="http://openoffice.org/extensions/update/2006"
xmlns:xlink="http://www.w3.org/1999/xlink"> xmlns:xlink="http://www.w3.org/1999/xlink">
<identifier value="pro.litvinovg.epublishing"/> <identifier value="pro.litvinovg.epublishing"/>
<version value="0.7.16" /> <version value="0.2.9" />
<update-download> <update-download>
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/uploads/9e6d9eaeb144d7a67e94c8460492a040/epublishing.oxt" /> <src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/uploads/ebd202dcb361b8c1c52f5aedba4211fd/ePublishing.oxt" />
</update-download> </update-download>
<release-notes> <release-notes>
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/-/raw/master/releasenotes.txt" lang="en" /> <src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/-/raw/master/releasenotes.txt" lang="en" />

BIN
icons/addon_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

@ -1,263 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73333mm"
height="67.73333mm"
viewBox="0 0 67.73333 67.73333"
version="1.1"
id="svg8655"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="addon_icon.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview8657"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.0308884"
inkscape:cx="112.01994"
inkscape:cy="108.32697"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="false" />
<defs
id="defs8652" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-104.6842,-132.32068)">
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
sodipodi:nodetypes="ccccccccccccccccccccc"
inkscape:connector-curvature="0"
d="m 132.37039,148.26988 h -2.07136 v -0.57304 h 2.07136 v -1.68816 h -1.38092 v -0.57303 h 1.38092 v -2.03656 h -4.83319 v 15.16484 h 4.83319 v -5.70978 h -2.07136 v -0.57304 h 2.07136 v -1.7191 h -1.38092 v -0.57303 h 1.38092 z"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="polygon2848-0-7"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:connector-curvature="0"
d="m 123.12724,144.21435 h 1.30516 l -0.65258,-2.26642 z"
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="polygon2850-4-7"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:connector-curvature="0"
d="m 122.94511,145.10139 -1.08709,2.86162 h 3.88288 l -1.0871,-2.86162 z"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.714155;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="polygon2854-3-4"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stop-color:#000000"
id="rect9098"
width="4.2093248"
height="8.8333616"
x="121.6905"
y="148.86641"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
id="path2860-2-0"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 117.70046,140.80732 -2.45727,5.17649 1.15636,3.65475 h 2.89147 l 1.15637,-3.65475 -2.45784,-5.17649 v 3.8386 a 0.57822907,0.91357072 0 1 1 -0.28909,0 z m -1.30091,9.28765 v 8.34889 h 2.89147 v -8.34889 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
id="path1875-1-2"
style="clip-rule:evenodd;fill:#b6b6b6;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-linejoin:round;stroke-linecap:round"
d="m 111.57969,157.82045 v 32.51431 h 2.7094 v -28.51764 c 0,-0.34404 0.26584,-0.6222 0.59428,-0.6222 h 23.37945 23.3748 c 0.32864,0 0.59428,0.27816 0.59428,0.6222 v 28.51764 h 2.70991 v -32.51431 z m 26.68313,33.75867 v 0 h -23.37945 -0.0145 -3.87884 -0.0196 -4.02818 v 2.9347 c 0,0.80971 0.31401,1.54308 0.82114,2.07428 0.51184,0.53145 1.21262,0.86506 1.98541,0.86506 h 57.02856 c 0.77299,0 1.47311,-0.33361 1.98024,-0.8599 0.50695,-0.53636 0.82114,-1.27024 0.82114,-2.07997 v -2.9347 h -4.02818 -0.015 -3.87884 -0.0191 z m -0.0944,0.86744 c 0.55085,0 1.04846,0.2331 1.41077,0.61238 0.35756,0.3797 0.58446,0.90046 0.58446,1.47743 0,0.57677 -0.2269,1.10308 -0.58446,1.47744 -0.36231,0.3797 -0.85992,0.61235 -1.41077,0.61235 -0.5506,0 -1.05288,-0.23265 -1.41025,-0.61235 l -0.0434,-0.0455 c -0.33828,-0.37436 -0.54105,-0.88053 -0.54105,-1.43195 0,-0.57697 0.22217,-1.09773 0.58446,-1.47743 0.35758,-0.37931 0.85965,-0.61238 1.41025,-0.61238 z m 0,1.24489 c -0.22217,0 -0.4249,0.0959 -0.57464,0.24755 -0.14505,0.15171 -0.23668,0.36443 -0.23668,0.59737 0,0.22262 0.0819,0.42498 0.21239,0.57153 l 0.0243,0.0254 c 0.14983,0.15661 0.35265,0.24805 0.57464,0.24805 0.22217,0 0.42495,-0.0914 0.56999,-0.24805 0.14484,-0.15214 0.23668,-0.36412 0.23668,-0.59685 0,-0.23273 -0.23668,-0.59687 -0.23668,-0.59687 v 0 c 0,0 -0.34759,-0.24755 -0.56999,-0.24755 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png"
sodipodi:nodetypes="cccsscsscccccccccccscsscsccccccccscsccscccccscsscssscc" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-5-5-5-6"
width="20.554724"
height="1.2916876"
x="123.94579"
y="168.00031"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-5-4"
width="25.511669"
height="1.2916876"
x="119.06848"
y="187.27496"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-5-8-5-1-9"
width="25.511669"
height="1.2916876"
x="118.98883"
y="172.7865"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.76822;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-0-4-8-3-6-8"
width="25.511669"
height="1.2916876"
x="119.06848"
y="182.48865"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:#3a3a3a;fill-opacity:1;stroke:#3a3a3a;stroke-width:1.97035;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-0-0-6-3-0-4"
width="22.040318"
height="1.2916876"
x="119.06848"
y="177.70239"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<ellipse
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.639035;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="path3451-4-2"
cx="144.54961"
cy="158.14117"
rx="4.860126"
ry="4.6989589"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
id="path2846-4-4"
style="fill:#cecece;fill-opacity:1;stroke:#000000;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 156.56806,135.84201 -0.40979,1.97146 a 11.102961,10.641572 0 0 0 -1.77767,0.4594 l -1.33894,-1.43245 a 13.045401,12.503294 0 0 0 -2.74298,1.53683 l 0.61908,1.80713 a 11.269889,10.801564 0 0 0 -1.3038,1.25005 l -1.88567,-0.59375 a 13.044093,12.50204 0 0 0 -1.60352,2.62929 l 1.49397,1.28313 a 11.097151,10.636004 0 0 0 -0.47904,1.70378 l -2.05673,0.39325 v 3.05356 l 2.05673,0.39325 a 11.095506,10.634428 0 0 0 0.39222,1.46399 l -0.73846,0.41032 a 6.8815349,6.5955698 0 0 0 -1.0976,-0.32917 l -0.64699,-1.45471 h -1.81591 l -0.64699,1.45471 a 6.8863609,6.6001955 0 0 0 -1.09761,0.32866 l -1.39319,-0.77411 a 8.1941513,7.8536402 0 0 0 -1.46968,1.00819 l 0.35553,1.48622 -0.67283,0.87177 -1.62109,0.14211 a 7.831057,7.5056343 0 0 0 -0.5674,1.61748 l 1.33687,1.01285 v 1.07953 l -1.33687,1.01338 a 7.8336105,7.5080817 0 0 0 0.5674,1.61695 l 1.62109,0.1421 0.67231,0.87181 -0.35501,1.48672 a 8.1953078,7.8547488 0 0 0 1.46916,1.00769 l 1.39371,-0.77412 a 6.8815349,6.5955698 0 0 0 1.09761,0.32867 l 0.64699,1.40509 h 1.81591 l 0.64699,-1.40509 a 6.8835862,6.5975361 0 0 0 1.0976,-0.32867 l 1.3932,0.77412 a 8.1941513,7.8536402 0 0 0 1.46968,-1.00769 l -0.35553,-1.48672 0.67282,-0.87128 1.62109,-0.14211 a 7.8318192,7.5063648 0 0 0 0.56741,-1.61747 l -0.50488,-0.38293 a 13.044718,12.502639 0 0 0 1.38441,0.66817 l 1.33842,-1.43245 a 11.105361,10.643874 0 0 0 1.77819,0.4594 l 0.40979,1.97146 h 3.18637 l 0.40979,-1.97146 a 11.10309,10.641698 0 0 0 1.77767,-0.4589 l 1.33894,1.43195 a 13.046811,12.504646 0 0 0 2.74298,-1.53685 l -0.61908,-1.80661 a 11.274289,10.805781 0 0 0 1.30431,-1.25058 l 1.88516,0.59378 a 13.044718,12.502639 0 0 0 1.60404,-2.62879 l -1.49449,-1.28363 a 11.105231,10.643748 0 0 0 0.47905,-1.70378 l 2.05723,-0.39325 v -3.05356 l -2.05723,-0.39275 a 11.097067,10.635923 0 0 0 -0.47905,-1.70428 l 1.49449,-1.28313 a 13.046811,12.504646 0 0 0 -1.60352,-2.62879 l -1.88568,0.59325 a 11.269889,10.801564 0 0 0 -1.30431,-1.25005 l 0.6196,-1.80713 a 13.044718,12.502639 0 0 0 -2.74298,-1.53683 l -1.33894,1.43245 a 11.105231,10.643748 0 0 0 -1.77819,-0.4594 l -0.40979,-1.97146 z m 1.53272,5.37229 a 7.4734009,7.1628407 0 0 1 7.53391,7.16287 7.4734009,7.1628407 0 0 1 -7.47344,7.16286 7.4734899,7.1629247 0 0 1 -0.0605,-14.32573 z m -0.16433,4.38269 a 2.7811034,2.6888794 0 0 0 -2.77606,2.68872 2.7811034,2.6888794 0 0 0 2.78071,2.68872 2.7811034,2.6888794 0 0 0 2.78123,-2.68872 2.7811034,2.6888794 0 0 0 -2.78123,-2.68872 2.7811034,2.6888794 0 0 0 -0.005,0 z m -13.79554,8.63409 a 4.0105414,3.8438817 0 1 1 -4.01061,3.84421 4.0105414,3.8438817 0 0 1 4.01061,-3.84421 z m 0.046,1.58647 a 2.2417849,2.1674453 0 0 0 -2.24172,2.16731 2.2417849,2.1674453 0 0 0 2.24172,2.16781 2.2417849,2.1674453 0 0 0 2.24173,-2.16781 2.2417849,2.1674453 0 0 0 -2.24173,-2.16731 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:connector-curvature="0"
d="m 149.99326,167.37867 v -2.09802"
id="path1537-6-4"
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
d="m 149.99327,188.56219 -1e-5,-17.80174"
id="path1506-9-0"
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<ellipse
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
cx="149.99326"
cy="169.06958"
id="path1512-6-3"
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
rx="1.6157811"
ry="1.6908911"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:connector-curvature="0"
d="m 154.3994,172.16728 v -6.88663"
id="path1530-8-2"
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
d="m 154.39941,188.61138 -10e-6,-13.06231"
id="path1510-0-0"
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<ellipse
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
cx="154.39941"
cy="173.85822"
id="circle1514-8-8"
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
rx="1.6157811"
ry="1.6908911"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:connector-curvature="0"
d="m 158.80553,168.86349 v -3.58284"
id="path1523-6-6"
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
d="M 158.80554,188.60154 V 172.24526"
id="path1508-7-9"
style="fill:#3a3a3a;fill-opacity:1;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<ellipse
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
cx="158.80553"
cy="170.55444"
id="circle1516-5-9"
style="fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:#2b2b2b;stroke-width:1.33272;stroke-linecap:round;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
rx="1.6157811"
ry="1.6908911"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<ellipse
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
ry="1.1019053"
rx="1.1396987"
cy="148.22153"
cx="157.88336"
id="path3451-5-6-3-46-3"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
<rect
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.25995;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect4991-5-0-5-8"
width="67.73333"
height="67.73333"
x="104.6842"
y="132.32068"
ry="0.089716367"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:export-filename="/home/sveta/Desktop/addon_icon.png" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

BIN
icons/decChar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73336mm"
height="67.73333mm"
viewBox="0 0 67.73336 67.73333"
version="1.1"
id="svg8011"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="decchar.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview8013"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.436055"
inkscape:cx="145.88578"
inkscape:cy="80.080498"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
showguides="true"
inkscape:guide-bbox="true">
<sodipodi:guide
position="49.561416,111.39896"
orientation="0,-1"
id="guide827" />
</sodipodi:namedview>
<defs
id="defs8008" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-105.05268,-164.01051)">
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect982-9-2-94-5-6-5"
width="67.73333"
height="67.73333"
x="104.9709"
y="163.94754" />
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="font-size:19.7556px;line-height:125%;font-family:Sans;letter-spacing:-1.83084px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRoot2434-2-1"
transform="matrix(5.3096471,0,0,5.1940957,-519.98047,-757.85626)"
aria-label="T">
<path
id="path2701-7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:1.26894px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 129.52705,177.74929 -10.8888,0.0147 -0.004,3.38911 c 0,0.11729 0.0461,0.21508 0.13831,0.29325 0.10537,0.0652 0.21736,0.0978 0.3359,0.0978 0.15806,0 0.30957,-0.0326 0.45445,-0.0978 0.14489,-0.0651 0.22381,-0.14992 0.23701,-0.25417 0.0922,-0.63852 0.1976,-1.12713 0.31615,-1.46593 0.13172,-0.35185 0.31615,-0.6125 0.55324,-0.78189 0.25026,-0.1824 0.5993,-0.28009 1.04713,-0.29315 h 1.36326 v 9.32363 c -0.0132,0.32578 -0.0461,0.59298 -0.0988,0.80148 -0.0395,0.19546 -0.1515,0.3648 -0.3359,0.50814 -0.18441,0.13036 -0.46756,0.1955 -0.84954,0.1955 -0.18438,0 -0.30951,0.0196 -0.37541,0.0587 -0.0658,0.0391 -0.10536,0.15635 -0.11856,0.35182 0,0.11728 0.0263,0.22151 0.079,0.31274 0.0658,0.0782 0.15808,0.11734 0.27662,0.11734 v -1e-4 c 0.85615,-0.0391 1.67937,-0.0587 2.46967,-0.0587 0.71126,0 1.48837,0.0196 2.33135,0.0587 0.11856,0 0.20416,-0.0391 0.25687,-0.11724 0.0659,-0.0912 0.0988,-0.19546 0.0988,-0.31274 -0.0132,-0.18242 -0.0526,-0.29324 -0.11855,-0.33232 -0.0527,-0.0521 -0.13833,-0.0782 -0.25687,-0.0782 h -0.11855 c -0.38197,0 -0.66513,-0.0652 -0.84953,-0.1955 -0.18442,-0.14334 -0.30296,-0.31268 -0.35566,-0.50814 -0.0395,-0.2085 -0.0658,-0.4757 -0.079,-0.80148 v -9.32363 h 1.34351 c 0.44783,0.013 0.79696,0.11071 1.04722,0.29315 0.25026,0.16939 0.43461,0.42349 0.55315,0.7623 0.11854,0.3388 0.23053,0.83397 0.3359,1.48552 0.0132,0.10424 0.0856,0.18897 0.21735,0.25417 0.14489,0.0652 0.2963,0.0978 0.45436,0.0978 0.11854,0 0.23052,-0.0326 0.3359,-0.0978 0.10535,-0.0782 0.15807,-0.17596 0.15807,-0.29325 z"
inkscape:connector-curvature="0" />
</g>
<path
d="m 117.74779,192.69455 13.39438,13.53973 -13.39438,13.53997 -0.0596,-6.49361 h -12.05501 v -14.09253 h 12.05498 z"
id="path966-9-6-0-26"
inkscape:connector-curvature="0"
style="fill:#0200ff;fill-opacity:1;stroke-width:5.49326"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
d="m 160.06694,192.69455 -13.39438,13.53973 13.39438,13.53997 0.0596,-6.49361 h 12.05501 v -14.09253 h -12.05498 z"
id="path966-9-6-0-26-3"
inkscape:connector-curvature="0"
style="fill:#0200ff;fill-opacity:1;stroke-width:5.49326"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect982-9-2-9-7-3-5"
width="67.73333"
height="67.73333"
x="104.97087"
y="163.94754" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.4 KiB

BIN
icons/decKern.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

View file

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73333mm"
height="67.73333mm"
viewBox="0 0 67.733329 67.73333"
version="1.1"
id="svg2477"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="decKern.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2479"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.436055"
inkscape:cx="84.606788"
inkscape:cy="174.78439"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="false" />
<defs
id="defs2474" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-53.01717,-69.4972)">
<rect
y="69.4972"
x="53.01717"
height="67.73333"
width="67.73333"
id="rect982-9-2-94-5-3-3-2"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="path7281-5-8"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 54.72981,114.22729 q -0.47856,0 -0.69129,-0.39538 -0.26594,-0.46127 -0.26594,-1.05436 0.0534,-0.98848 0.31904,-1.18615 0.26595,-0.1978 0.63811,-0.1978 0.37223,0 0.47856,0 1.59525,0 2.33969,-0.98846 0.74444,-1.05436 1.16986,-2.30641 0.47858,-1.31796 0.63808,-1.77924 l 9.30559,-27.281567 q 0.31906,-0.988455 0.31906,-1.581525 0,-1.186153 -0.74445,-1.71335 -0.74446,-0.527164 -2.07384,-0.856665 -0.90394,-0.197785 -1.11666,-0.395394 -0.21264,-0.197808 -0.21264,-1.120235 0,-0.79079 0.31905,-1.054359 0.3722,-0.263527 1.11667,-0.263527 2.65874,0 4.20081,0.527141 1.59524,0.461325 2.76511,1.976953 1.16984,1.449745 2.18017,4.481039 l 8.93336,27.281549 q 0.79761,2.5041 1.54206,3.75617 0.74446,1.25202 2.23334,1.31795 h 0.31907 q 0.53171,0 0.74444,0.2635 0.21263,0.19782 0.26593,1.12028 0,0.59308 -0.26593,1.05436 -0.21265,0.39538 -0.6913,0.39538 -3.40321,-0.1978 -5.84921,-0.1978 -3.1905,0 -6.59368,0.1978 -0.47859,0 -0.74446,-0.39538 -0.21263,-0.46128 -0.21263,-1.05436 0.0533,-0.92256 0.26592,-1.12028 0.21265,-0.2635 0.74445,-0.2635 1.80793,0 2.5524,-0.39538 0.74445,-0.46128 0.74445,-1.58156 0,-0.85664 -0.63811,-3.09718 l -1.80795,-5.4695 h -13.1342 q -1.32936,4.08567 -1.54206,4.74465 -0.15959,0.65895 -0.15959,0.72485 -0.63811,2.5041 -0.63811,3.22897 0,1.12027 0.79761,1.51565 0.79764,0.32957 3.03097,0.32957 h 0.31905 q 0.53173,0 0.74442,0.26349 0.21264,0.19782 0.26595,1.12029 0,0.59309 -0.26595,1.05437 -0.21264,0.39536 -0.69124,0.39536 -3.4032,-0.19781 -5.79605,-0.19781 -1.7016,0 -5.15796,0.19781 z M 64.833,98.0165 H 75.99973 L 70.62906,81.08085 h -0.15961 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="path7283-2-4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.626217px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 94.09436,116.08178 q -0.41432,0.13465 -0.8041,-0.0973 -0.38979,-0.23215 -0.58234,-0.73936 L 79.18886,71.864135 q -0.10865,-0.513438 0.16248,-1.002634 0.27115,-0.489207 0.72739,-0.626989 0.41431,-0.134653 0.80409,0.09753 0.43173,0.229052 0.62676,0.78825 l 13.43523,43.386948 q 0.10865,0.51346 -0.16498,0.9507 -0.22921,0.48613 -0.68545,0.62393 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="path7285-1-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 100.76564,114.62338 q -1.59528,-5.40359 -5.05163,-17.19925 -3.45634,-11.79562 -5.0516,-17.067432 -0.90394,-2.833595 -1.75475,-3.953885 -0.8508,-1.120234 -2.4992,-1.515642 -0.21264,-0.06602 -0.63811,-0.131701 -0.42539,-0.13168 -0.58491,-0.395373 -0.10629,-0.329556 -0.10629,-0.988477 0,-0.790746 0.31904,-1.054316 0.37224,-0.263537 1.1167,-0.263537 3.98811,0 6.06192,1.51565 2.0738,1.515653 3.29681,5.403609 l 7.71036,25.700004 h 0.15962 l 7.33809,-26.424888 q 0.31907,-1.120257 0.31907,-1.713338 0,-0.922537 -0.63811,-1.186152 -0.58489,-0.329568 -2.02061,-0.329568 h -0.31909 q -0.53171,0 -0.74439,-0.197797 -0.21266,-0.263515 -0.26597,-1.186152 0,-0.59308 0.21265,-0.988476 0.26594,-0.461279 0.69129,-0.461279 3.45636,0.197787 5.79601,0.197787 1.01034,0 3.88178,-0.13168 l 1.11666,-0.06602 q 0.47858,0 0.69128,0.46128 0.26593,0.395395 0.26593,0.988486 -0.0533,0.922559 -0.26593,1.186142 -0.21264,0.197808 -0.74445,0.197808 -2.28651,0 -3.50952,0.922571 -1.16986,0.922558 -2.02065,3.558478 -1.59525,5.403587 -5.15794,17.528728 -3.50955,12.05923 -5.10481,17.59463 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
d="m 101.68467,117.40379 -13.026836,9.55858 13.026836,9.55873 0.0275,-4.76566 h 18.65975 v -9.58604 h -18.65975 z"
id="path966-9-6-0-2-0-0-9-4-7-4-9"
inkscape:connector-curvature="0"
style="fill:#001bff;fill-opacity:1;stroke-width:3.13936"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
d="m 72.381126,117.25351 13.02687,9.55858 -13.02687,9.55873 -0.0275,-4.76566 H 53.693883 v -9.58604 h 18.659743 z"
id="path966-9-6-0-2-0-0-9-4-7-4-9-4"
inkscape:connector-curvature="0"
style="fill:#001bff;fill-opacity:1;stroke-width:3.13936"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -1,153 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73333mm"
height="67.73333mm"
viewBox="0 0 67.73333 67.73333"
version="1.1"
id="svg2486"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="endnotes.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2488"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.6903844"
inkscape:cx="83.708771"
inkscape:cy="81.638236"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2483" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-92.892647,-111.68544)">
<rect
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
y="111.68544"
x="92.892647"
height="67.73333"
width="67.73333"
id="rect3292"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:0.265;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
<rect
y="135.49535"
x="95.049019"
height="5.0871596"
width="40.605831"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.10395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000046"
inkscape:export-ydpi="96.000046" />
<rect
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.948985;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-1"
width="8.2611904"
height="5.0871596"
x="150.44847"
y="135.49535" />
<path
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
sodipodi:nodetypes="cccccc"
style="fill:#ff6600;fill-opacity:1;stroke-width:3.89118"
inkscape:connector-curvature="0"
id="path966-9-6-0-2-0-37-2"
d="m 157.55297,151.61926 -13.85782,13.28552 -13.85804,-13.28552 9.21069,-0.0292 9.29454,-2e-5 z" />
<rect
y="127.10445"
x="150.46057"
height="5.0871596"
width="8.2611904"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-1-4"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.948984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000046"
inkscape:export-ydpi="96.000046" />
<rect
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.10395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-2"
width="40.605831"
height="5.0871596"
x="95.057297"
y="127.22473" />
<rect
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.948984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-1-4-1"
width="8.2611904"
height="5.0871596"
x="150.49835"
y="143.73186" />
<rect
y="143.93459"
x="95.058357"
height="5.0871596"
width="40.605831"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-2-7"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.10395;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000046"
inkscape:export-ydpi="96.000046" />
<rect
y="167.01994"
x="101.8401"
height="3.5655646"
width="56.980888"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-24-5"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.08656;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000046"
inkscape:export-ydpi="96.000046" />
<rect
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.08656;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-5-5-9-5-0-2-9-24-5-7"
width="56.980892"
height="3.5655646"
x="101.83765"
y="174.05339" />
<circle
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
r="2.3487535"
cy="168.64861"
cx="98.229622"
id="path3707"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:9.56849;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
inkscape:export-ydpi="96.000046"
inkscape:export-xdpi="96.000046"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:9.5685;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path3707-1"
cx="98.270699"
cy="175.60979"
r="2.3487535" />
<path
style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 94.786563,114.60607 h 40.431997 c 9.72673,0 12.52136,5.48131 12.52136,12.52137 v 25.97065 h -8.81151 v -24.64861 c 0,-3.02882 -0.65494,-5.90145 -6.22771,-6.06022 H 94.761584 Z"
id="path5209"
sodipodi:nodetypes="ccccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

BIN
icons/incChar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73336mm"
height="67.73333mm"
viewBox="0 0 67.73336 67.73333"
version="1.1"
id="svg7825"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="symbol_plus.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7827"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.0154442"
inkscape:cx="9.3555114"
inkscape:cy="35.452464"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs7822" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-131.95218,-153.69289)">
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect982-9-2-94-5-6-5"
width="67.73333"
height="67.73333"
x="131.95221"
y="153.69289" />
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="font-size:19.7556px;line-height:125%;font-family:Sans;letter-spacing:-1.83084px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRoot2434-2-1"
transform="matrix(5.3096471,0,0,5.1940957,-492.99916,-768.11092)"
aria-label="T">
<path
id="path2701-7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:1.26894px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.19042;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 129.52705,177.74929 -10.8888,0.0147 -0.004,3.38911 c 0,0.11729 0.0461,0.21508 0.13831,0.29325 0.10537,0.0652 0.21736,0.0978 0.3359,0.0978 0.15806,0 0.30957,-0.0326 0.45445,-0.0978 0.14489,-0.0651 0.22381,-0.14992 0.23701,-0.25417 0.0922,-0.63852 0.1976,-1.12713 0.31615,-1.46593 0.13172,-0.35185 0.31615,-0.6125 0.55324,-0.78189 0.25026,-0.1824 0.5993,-0.28009 1.04713,-0.29315 h 1.36326 v 9.32363 c -0.0132,0.32578 -0.0461,0.59298 -0.0988,0.80148 -0.0395,0.19546 -0.1515,0.3648 -0.3359,0.50814 -0.18441,0.13036 -0.46756,0.1955 -0.84954,0.1955 -0.18438,0 -0.30951,0.0196 -0.37541,0.0587 -0.0658,0.0391 -0.10536,0.15635 -0.11856,0.35182 0,0.11728 0.0263,0.22151 0.079,0.31274 0.0658,0.0782 0.15808,0.11734 0.27662,0.11734 v -1e-4 c 0.85615,-0.0391 1.67937,-0.0587 2.46967,-0.0587 0.71126,0 1.48837,0.0196 2.33135,0.0587 0.11856,0 0.20416,-0.0391 0.25687,-0.11724 0.0659,-0.0912 0.0988,-0.19546 0.0988,-0.31274 -0.0132,-0.18242 -0.0526,-0.29324 -0.11855,-0.33232 -0.0527,-0.0521 -0.13833,-0.0782 -0.25687,-0.0782 h -0.11855 c -0.38197,0 -0.66513,-0.0652 -0.84953,-0.1955 -0.18442,-0.14334 -0.30296,-0.31268 -0.35566,-0.50814 -0.0395,-0.2085 -0.0658,-0.4757 -0.079,-0.80148 v -9.32363 h 1.34351 c 0.44783,0.013 0.79696,0.11071 1.04722,0.29315 0.25026,0.16939 0.43461,0.42349 0.55315,0.7623 0.11854,0.3388 0.23053,0.83397 0.3359,1.48552 0.0132,0.10424 0.0856,0.18897 0.21735,0.25417 0.14489,0.0652 0.2963,0.0978 0.45436,0.0978 0.11854,0 0.23052,-0.0326 0.3359,-0.0978 0.10535,-0.0782 0.15807,-0.17596 0.15807,-0.29325 z"
inkscape:connector-curvature="0" />
</g>
<path
d="m 145.66063,182.43989 -13.39438,13.53973 13.39438,13.53997 0.0596,-6.49361 h 12.05501 v -14.09253 h -12.05498 z"
id="path966-9-6-0-26"
inkscape:connector-curvature="0"
style="fill:#ff0002;fill-opacity:1;stroke-width:5.49326"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
d="m 185.76848,182.43989 13.39438,13.53973 -13.39438,13.53997 -0.0596,-6.49361 h -12.05501 v -14.09253 h 12.05498 z"
id="path966-9-6-0-26-3"
inkscape:connector-curvature="0"
style="fill:#ff0002;fill-opacity:1;stroke-width:5.49326"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<rect
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect982-9-2-9-7-3-5"
width="67.73333"
height="67.73333"
x="131.95218"
y="153.69289" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

BIN
icons/incKern.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

@ -1,90 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73336mm"
height="67.73333mm"
viewBox="0 0 67.73336 67.73333"
version="1.1"
id="svg2700"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="incKern.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2702"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.0308884"
inkscape:cx="128.76138"
inkscape:cy="144.76423"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="false" />
<defs
id="defs2697" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-114.87222,-84.436211)">
<rect
y="84.436211"
x="114.87222"
height="67.73333"
width="67.73333"
id="rect982-9-2-94-5-3-3-2"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="path7281-5"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 116.58485,129.16631 q -0.47856,0 -0.69129,-0.39538 -0.26594,-0.46127 -0.26594,-1.05436 0.0534,-0.98848 0.31904,-1.18615 0.26595,-0.1978 0.63811,-0.1978 0.37223,0 0.47856,0 1.59525,0 2.33969,-0.98846 0.74444,-1.05436 1.16986,-2.30641 0.47858,-1.31796 0.63808,-1.77924 l 9.30559,-27.281577 q 0.31906,-0.988455 0.31906,-1.581525 0,-1.186153 -0.74445,-1.71335 -0.74446,-0.527164 -2.07384,-0.856665 -0.90394,-0.197785 -1.11666,-0.395394 -0.21264,-0.197808 -0.21264,-1.120235 0,-0.79079 0.31905,-1.054359 0.3722,-0.263527 1.11667,-0.263527 2.65874,0 4.20081,0.527141 1.59524,0.461325 2.76511,1.976953 1.16984,1.449745 2.18017,4.481039 l 8.93336,27.281559 q 0.79761,2.5041 1.54206,3.75617 0.74446,1.25202 2.23334,1.31795 h 0.31907 q 0.53171,0 0.74444,0.2635 0.21263,0.19782 0.26593,1.12028 0,0.59308 -0.26593,1.05436 -0.21265,0.39538 -0.6913,0.39538 -3.40321,-0.1978 -5.84921,-0.1978 -3.1905,0 -6.59368,0.1978 -0.47859,0 -0.74446,-0.39538 -0.21263,-0.46128 -0.21263,-1.05436 0.0533,-0.92256 0.26592,-1.12028 0.21265,-0.2635 0.74445,-0.2635 1.80793,0 2.5524,-0.39538 0.74445,-0.46128 0.74445,-1.58156 0,-0.85664 -0.63811,-3.09718 l -1.80795,-5.4695 h -13.1342 q -1.32936,4.08567 -1.54206,4.74465 -0.15959,0.65895 -0.15959,0.72485 -0.63811,2.5041 -0.63811,3.22897 0,1.12027 0.79761,1.51565 0.79764,0.32957 3.03097,0.32957 h 0.31905 q 0.53173,0 0.74442,0.26349 0.21264,0.19782 0.26595,1.12029 0,0.59309 -0.26595,1.05437 -0.21264,0.39536 -0.69124,0.39536 -3.4032,-0.19781 -5.79605,-0.19781 -1.7016,0 -5.15796,0.19781 z m 10.10319,-16.2108 h 11.16673 L 132.4841,96.01986 h -0.15961 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="path7283-2"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.626217px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.9494,131.0208 q -0.41432,0.13465 -0.8041,-0.0973 -0.38979,-0.23215 -0.58234,-0.73936 L 141.0439,86.803145 q -0.10865,-0.513438 0.16248,-1.002634 0.27115,-0.489207 0.72739,-0.626989 0.41431,-0.134653 0.80409,0.09753 0.43173,0.229052 0.62676,0.78825 l 13.43523,43.386958 q 0.10865,0.51346 -0.16498,0.9507 -0.22921,0.48613 -0.68545,0.62393 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="path7285-1-6"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;line-height:125%;font-family:Alice;-inkscape-font-specification:'Alice Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;letter-spacing:-1.83084px;word-spacing:-0.00183084px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.792791px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 162.62067,129.5624 q -1.59527,-5.40359 -5.05162,-17.19926 -3.45634,-11.79562 -5.0516,-17.067432 -0.90394,-2.833595 -1.75475,-3.953885 -0.8508,-1.120234 -2.4992,-1.515642 -0.21264,-0.06602 -0.63811,-0.131701 -0.42539,-0.13168 -0.58491,-0.395373 -0.10629,-0.329556 -0.10629,-0.988477 0,-0.790746 0.31904,-1.054316 0.37224,-0.263537 1.1167,-0.263537 3.98811,0 6.06192,1.51565 2.0738,1.515653 3.29681,5.403609 l 7.71035,25.700014 h 0.15962 l 7.33809,-26.424898 q 0.31907,-1.120257 0.31907,-1.713338 0,-0.922537 -0.63811,-1.186152 -0.58489,-0.329568 -2.02061,-0.329568 h -0.31909 q -0.53171,0 -0.74439,-0.197797 -0.21266,-0.263515 -0.26597,-1.186152 0,-0.59308 0.21265,-0.988476 0.26594,-0.461279 0.69129,-0.461279 3.45636,0.197787 5.79601,0.197787 1.01034,0 3.88178,-0.13168 l 1.11667,-0.06602 q 0.47858,0 0.69128,0.46128 0.26593,0.395395 0.26593,0.988486 -0.0533,0.922559 -0.26593,1.186142 -0.21264,0.197808 -0.74445,0.197808 -2.28652,0 -3.50953,0.922571 -1.16986,0.922558 -2.02065,3.558478 -1.59525,5.403587 -5.15794,17.528728 -3.50955,12.05924 -5.10481,17.59464 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
d="m 169.20012,132.34281 13.02687,9.55857 -13.02687,9.55873 -0.0275,-4.76566 h -17.07224 v -9.58603 h 17.07224 z"
id="path966-9-6-0-2-0-0-9-4-7-4-9"
inkscape:connector-curvature="0"
style="fill:#e60002;fill-opacity:1;stroke-width:3.13936"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
d="m 128.57579,132.19253 -13.02687,9.55857 13.02687,9.55873 0.0275,-4.76566 h 17.07224 v -9.58603 h -17.07224 z"
id="path966-9-6-0-2-0-0-9-4-7-4-9-4"
inkscape:connector-curvature="0"
style="fill:#e60002;fill-opacity:1;stroke-width:3.13936"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

BIN
icons/links.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73333mm"
height="67.73333mm"
viewBox="0 0 67.73333 67.73333"
version="1.1"
id="svg2924"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="links.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2926"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.0308885"
inkscape:cx="80.506637"
inkscape:cy="128.02279"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:snap-global="false" />
<defs
id="defs2921" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-62.071301,-83.900757)">
<path
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-1-7-8-6-8"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50924;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
d="m 63.288246,128.42133 v 4.5 h 12.83916 c 0.0967,-1.57265 2.4477,-3.09012 2.94527,-4.5 z m 41.145354,0 -3.50074,4.5 h 27.64836 v -4.5 z"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
d="m 128.52123,106.7402 v -4.5 h -12.83916 c -0.0967,1.57263 -2.44771,3.09012 -2.94527,4.5 z m -41.145358,0 5.085514,-4.5 H 63.228252 v 4.5 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50924;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-1-7-8-6" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
d="m 128.58843,97.727829 v -4.5 h -10.35091 c 0.6888,1.376399 0.15148,2.896634 0.41261,4.5 z m -31.934402,0 3.500762,-4.5 H 63.295448 v 4.5 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50923;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-9-8-7-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
d="m 128.58362,89.074333 v -4.5 H 63.290647 v 4.5 h 40.157263 c 1.80892,-1.743618 3.99687,-2.687929 6.29866,-2.687929 h 10e-4 c 2.30145,8.18e-4 4.49043,0.944896 6.29965,2.687929 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50922;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-7-6-2-6-6"
inkscape:connector-curvature="0" />
<path
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-9-8-7-2-9"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50923;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
d="m 63.288246,137.46204 v 4.5 h 10.35091 c -0.6888,-1.37639 -0.15149,-2.89663 -0.41261,-4.5 z m 31.93439,0 -3.50076,4.5 h 36.859344 v -4.5 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:connector-curvature="0"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-7-0-7-6-2-6-6-8"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.50923;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
d="m 63.288246,146.17315 v 4.5 h 65.292974 v -4.5 H 88.423956 c -1.80893,1.74361 -3.99687,2.68793 -6.29866,2.68793 h -0.001 c -2.30146,-7.8e-4 -4.49044,-0.9449 -6.29965,-2.68793 z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:connector-curvature="0"
d="m 90.271426,114.39038 -16.2298,16.23069 c -2.05842,2.05665 -3.19117,4.79255 -3.19117,7.70296 0,2.91177 1.13409,5.64724 3.19161,7.70388 2.05707,2.05661 4.79344,3.19025 7.70296,3.19115 h 8.7e-4 c 2.90997,0 5.64499,-1.13364 7.70206,-3.19115 l 16.230714,-16.23117 c 3.34022,-3.34021 4.13332,-8.41483 2.041,-12.58073 l -3.56339,3.56381 c 0.44275,2.08296 -0.19771,4.27035 -1.70983,5.78291 l -16.638644,16.63731 -0.0116,-0.0109 c -1.18364,1.03365 -2.67833,1.59735 -4.25204,1.59735 -1.68172,0 -3.25587,-0.64851 -4.43504,-1.82634 -1.19657,-1.1961 -1.84328,-2.79347 -1.82676,-4.49795 0.0161,-1.5514 0.58065,-3.0229 1.59959,-4.19091 l -0.0104,-0.009 0.22806,-0.22985 c 0.0299,-0.0316 0.0611,-0.0642 0.0919,-0.0942 0.0104,-0.01 0.0192,-0.0197 0.0286,-0.0277 l 0.055,-0.0557 16.2298,-16.23071 c 1.19435,-1.193 2.78056,-1.84954 4.46673,-1.84954 0.43606,0 0.86899,0.0452 1.29388,0.13302 l 3.567384,-3.56831 c -1.49961,-0.74802 -3.167494,-1.13988 -4.859924,-1.13988 -2.90908,5.3e-4 -5.645,1.13364 -7.70252,3.19027 M 121.77679,97.012846 c 0,-2.90999 -1.13407,-5.645891 -3.19115,-7.702521 -2.0575,-2.05886 -4.79343,-3.19159 -7.70385,-3.19159 -2.90952,0 -5.64499,1.13318 -7.70207,3.19159 L 86.948586,105.53961 c -3.338,3.33755 -4.13288,8.40857 -2.04638,12.57271 l 3.41253,-3.41254 c -0.39141,-1.9495 0.15979,-4.00077 1.47954,-5.51467 l -0.0104,-0.01 0.22406,-0.22627 c 0.0286,-0.0299 0.0598,-0.0616 0.0897,-0.0921 0.0104,-0.009 0.0179,-0.0178 0.0276,-0.0267 l 0.0562,-0.0567 16.229374,-16.229834 c 1.19389,-1.19389 2.78099,-1.85087 4.4694,-1.85087 1.68885,0 3.27551,0.65698 4.4694,1.85087 2.46455,2.46412 2.46455,6.47604 0,8.938374 l -16.635504,16.63774 -0.0117,-0.0116 c -1.18541,1.0341 -2.67744,1.59825 -4.25161,1.59825 -0.42443,0 -0.84398,-0.0419 -1.25594,-0.12408 l -3.41207,3.41209 c 1.50364,0.75025 3.17198,1.1439 4.86795,1.1439 2.91134,0 5.646794,-1.1332 7.703874,-3.19028 l 16.23026,-16.23024 c 2.05751,-2.05887 3.19071,-4.794315 3.19071,-7.705205"
id="path1214-3-8-8"
style="fill:#0003ff;fill-opacity:1;stroke:#1c26ff;stroke-width:0.446;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.7 KiB

BIN
icons/paragraph.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -1,158 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73333mm"
height="67.73333mm"
viewBox="0 0 67.73333 67.73333"
version="1.1"
id="svg9916"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="paragraph.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview9918"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:snap-global="false"
inkscape:zoom="2.0308884"
inkscape:cx="115.46671"
inkscape:cy="156.08932"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs9913" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-92.524155,-109.47453)">
<rect
y="109.47453"
x="92.524155"
height="67.73333"
width="67.73333"
id="rect982-9-2-9-7-0"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<path
id="rect847-2-0-2"
style="fill:none;stroke:#000000;stroke-width:1.99356;paint-order:stroke markers fill;stop-color:#000000"
d="m 124.78694,132.07734 v -20.799 h 32.55138 v 43.20213 l -28.57395,0"
sodipodi:nodetypes="ccccc" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.47294;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-4"
width="21.80117"
height="4.6439242"
x="132.51495"
y="114.49986" />
<rect
y="124.22032"
x="128.09102"
height="4.6439242"
width="26.394829"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-0"
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.62072;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.62072;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9-80"
width="26.394829"
height="4.6439242"
x="128.12129"
y="133.61826" />
<path
id="path1659-3-4-3-2"
fill="#241F20"
d="m 147.82818,157.32917 8.99869,8.75745 h -3.83501 c -0.65909,7.11404 -5.34633,13.64931 -19.22877,8.60297 7.33777,0.27447 8.63092,-3.725 8.96976,-8.60294 h -4.36677 z"
inkscape:connector-curvature="0"
style="fill:#ff0e00;fill-opacity:1;stroke-width:0.593436"
inkscape:export-xdpi="96.000008"
inkscape:export-ydpi="96.000008"
sodipodi:nodetypes="ccccccc" />
<path
id="path1659-3-4-3-2-0"
fill="#241F20"
d="m 106.39267,129.95823 -8.998683,-9.02248 h 3.835003 c 0.65909,-7.32934 5.34633,-14.06239 19.22877,-8.86332 -7.33777,-0.28279 -8.63092,3.83772 -8.96976,8.86329 h 4.36677 z"
inkscape:connector-curvature="0"
style="fill:#ff0e00;fill-opacity:1;stroke-width:0.602349"
inkscape:export-xdpi="96.000008"
inkscape:export-ydpi="96.000008"
sodipodi:nodetypes="ccccccc" />
<rect
y="144.05806"
x="129.3343"
height="4.6439242"
width="25.151567"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9-8-5"
style="fill:#029c00;fill-opacity:1;stroke:none;stroke-width:1.5821;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.99141;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect847-2-0-1-0"
width="33.820812"
height="42.416"
x="95.032234"
y="132.36934"
ry="0" />
<rect
y="138.01369"
x="101.99397"
height="4.9674153"
width="24.004038"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5985;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.72633;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3"
width="27.996544"
height="4.9674153"
x="98.001465"
y="147.7115" />
<rect
y="157.37741"
x="98.001472"
height="4.9674153"
width="27.996544"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.72633;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.72633;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-1-4-7-8-1-9-2-3-9-8"
width="27.996544"
height="4.9674153"
x="98.00148"
y="166.80212" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

BIN
icons/press_text.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="67.73333mm"
height="67.73333mm"
viewBox="0 0 67.73333 67.73333"
version="1.1"
id="svg2477"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
sodipodi:docname="press_text.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview2479"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.0308884"
inkscape:cx="59.826033"
inkscape:cy="109.80416"
inkscape:window-width="1920"
inkscape:window-height="992"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
inkscape:lockguides="true" />
<defs
id="defs2474" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-44.252445,-77.047729)">
<rect
y="77.047729"
x="44.252445"
height="67.73333"
width="67.73333"
id="rect982-9-2-94-9-12"
style="fill:none;fill-opacity:1;stroke:none;stroke-width:1.256;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
y="108.00449"
x="45.867519"
height="6.5124974"
width="64.078773"
id="rect851-8-3-8-3-37-8-5-8-6-0-2"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99041;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99041;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
id="rect851-8-3-8-3-37-8-5-8-6-0-0-46"
width="64.078773"
height="6.5124974"
x="45.6674"
y="95.987839" />
<rect
y="120.45139"
x="45.867519"
height="6.5124974"
width="64.078773"
id="rect851-8-3-8-3-37-8-5-8-6-0-0-4-0"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.99041;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<path
d="m 62.836441,77.914258 14.82678,14.252148 14.82704,-14.252148 z"
id="path966-9-6-0-2-7-3-4-34-6-9"
inkscape:connector-curvature="0"
style="fill:#e60002;fill-opacity:1;stroke-width:5.20472"
sodipodi:nodetypes="cccc"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<path
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
sodipodi:nodetypes="cccc"
style="fill:#e60002;fill-opacity:1;stroke-width:5.20826"
inkscape:connector-curvature="0"
id="path966-9-6-0-2-7-3-4-34-6-9-9"
d="m 63.55667,144.36014 14.82678,-14.27159 14.82704,14.27159 z" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -1,108 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="hvost.svg"
inkscape:version="1.0 (4035a4f, 2020-05-01)"
id="svg2650"
version="1.1"
viewBox="0 0 67.73333 67.73333"
height="67.73333mm"
width="67.73333mm">
<defs
id="defs2644" />
<sodipodi:namedview
inkscape:window-maximized="1"
inkscape:window-y="25"
inkscape:window-x="0"
inkscape:window-height="992"
inkscape:window-width="1920"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="161.53655"
inkscape:cx="48.279563"
inkscape:zoom="0.98994949"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata2647">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-94.593422,-56.778362)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:2.02445;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6"
width="18.675617"
height="10.240829"
x="96.890099"
y="108.6032" />
<path
d="m 148.55629,103.93948 11.61928,9.55377 -11.61928,9.55393 -0.0327,-6.34998 h -7.8785 v -6.4078 h 7.87849 z"
id="path966-9-6-0-2-0-0-9-4-7-4-8-3"
inkscape:connector-curvature="0"
style="opacity:1;fill:#e60002;fill-opacity:1;stroke-width:3.42818;stop-opacity:1"
sodipodi:nodetypes="cccccccc"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
sodipodi:nodetypes="cccccccc"
style="opacity:1;fill:#e60002;fill-opacity:1;stroke-width:3.42818;stop-opacity:1"
inkscape:connector-curvature="0"
id="path966-9-6-0-2-0-0-9-4-7-4-8-3-8"
d="m 128.61418,123.04712 -11.61928,-9.55377 11.61928,-9.55392 0.0327,6.34997 h 7.8785 v 6.4078 h -7.87849 z" />
<rect
y="91.483078"
x="96.890099"
height="10.240829"
width="62.825058"
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6-2"
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:3.71308;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
<rect
inkscape:export-ydpi="96.000023"
inkscape:export-xdpi="96.000023"
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:3.71308;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6-2-8"
width="62.825058"
height="10.240829"
x="96.890099"
y="74.892128" />
<rect
y="59.359539"
x="96.890099"
height="10.240829"
width="62.825058"
id="rect851-8-3-8-3-37-8-5-8-6-0-0-6-2-8-3"
style="opacity:1;fill:#484848;fill-opacity:1;stroke:none;stroke-width:3.71308;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;stop-color:#000000;stop-opacity:1"
inkscape:export-xdpi="96.000023"
inkscape:export-ydpi="96.000023" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 88 KiB

View file

@ -1,15 +1,2 @@
0.7.2 Added conversion for endnotes to manual endontes and back
0.6.15 Increased limit of articles in issue to 50
0.6.14 Bugfix: Remove bookmark before creating another one with the same name
0.6.13 Forbid creating bidirectional links with empty text
0.6.6 Archive headings configuration function added
0.6.5 Improved archive conversion functions
0.6.4 French translations added
0.6.3 Croatian, Serbian and Bosnian translations added
0.6.1 Function to set unique page style to each page
0.5.6 Fixes for page config dialog
0.5.3 Help text to page styles dialog added
0.5.2 Page styles configuration dialog added
0.3.1 Icons improved
0.2.8 Release with fixed description 0.2.8 Release with fixed description
0.2.7 First public release with updates 0.2.7 First public release with updates

Binary file not shown.