Compare commits
128 commits
Author | SHA1 | Date | |
---|---|---|---|
ca46b20e41 | |||
e62d44cd89 | |||
a5ac4cbb43 | |||
6d138ae938 | |||
d06657e3ee | |||
7a389b1b17 | |||
fa35152083 | |||
05041fc38b | |||
82dc861e82 | |||
6843f73923 | |||
1f4f9d757d | |||
075bfc85aa | |||
b0b5460032 | |||
797ff48837 | |||
fe1fc573eb | |||
82c63c82ca | |||
941ac1c9cc | |||
5dcf629d0d | |||
1eaa629949 | |||
be702bc60f | |||
f39f25b053 | |||
5bb9600439 | |||
f58b4f58de | |||
48ebe71c8e | |||
ab552a70db | |||
8785038720 | |||
8611814942 | |||
2b37cfe542 | |||
d05aed70d6 | |||
79f8164650 | |||
c5dfb15133 | |||
13ba8d4f0c | |||
c44890068b | |||
c5da7ca352 | |||
8411b36a8f | |||
25372f07a2 | |||
b8d2fc8361 | |||
13d70679cc | |||
ff35128df4 | |||
383c0c832d | |||
f2cf656958 | |||
1ee8b5f951 | |||
f889f0edb7 | |||
f7bf8fd316 | |||
f912e831a0 | |||
71f52c5c01 | |||
58bab11323 | |||
ffa704353a | |||
38c23dc75d | |||
097883c65a | |||
df65b5efe1 | |||
edeef39f82 | |||
4d687b4923 | |||
995d7801a5 | |||
58f1fb4c34 | |||
55f8f9e79b | |||
90207f01d0 | |||
8087152c4a | |||
6d42c6a449 | |||
2c7c35297e | |||
434c083f3b | |||
6dbe28c2f5 | |||
30dcf4c5de | |||
ec75bae72d | |||
843846b8a0 | |||
9a72d7d7e0 | |||
8a99a25f43 | |||
2adb633b82 | |||
03b6c75cf3 | |||
795ce507b7 | |||
adb6e97f65 | |||
3afbc932a9 | |||
05020edb1d | |||
e2d0bd1bb6 | |||
daf1b542d4 | |||
c8751d75c9 | |||
52550f79ab | |||
a444d942f3 | |||
e607dd98de | |||
1ec3e9ad34 | |||
85e11b73a5 | |||
8fab22ff8c | |||
eb6427e657 | |||
f8887020b9 | |||
07624d0907 | |||
5e252a96f9 | |||
f7fa3981f4 | |||
a8f9b71ab0 | |||
724d455bff | |||
06285ba9e6 | |||
![]() |
56a421eb7c | ||
63f9348421 | |||
da73b84f39 | |||
![]() |
fdc474ac94 | ||
ca9f335156 | |||
fa4c3518d7 | |||
e064dcfdf4 | |||
8c445ba964 | |||
ba8a410416 | |||
59c5e6396c | |||
15a423b3c4 | |||
c9b2e2d6fd | |||
01d814b22f | |||
28ae0a1349 | |||
60deb71b08 | |||
e72ccdda16 | |||
0cf66ed037 | |||
1d7c37bf5d | |||
6572ca3b38 | |||
2a194a0ae2 | |||
66594966ac | |||
2ad042a2a0 | |||
f0badee775 | |||
ef395bc973 | |||
0816dece7c | |||
2d3ce1d69e | |||
0c6f9c62ea | |||
c3f28049e7 | |||
23f8834361 | |||
163cb7de47 | |||
37c469c866 | |||
4a85997850 | |||
ac84062a4d | |||
dc13387975 | |||
fd39bd91ff | |||
3ac6ae4097 | |||
9258ff7d41 | |||
b3759318b8 |
253
Addons.xcu
|
@ -3,6 +3,10 @@
|
||||||
<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>
|
||||||
|
@ -10,6 +14,10 @@
|
||||||
<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>
|
||||||
|
@ -23,8 +31,12 @@
|
||||||
<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</value>
|
<value xml:lang="en">Replace para style and remove replaced</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>
|
||||||
|
@ -40,6 +52,10 @@
|
||||||
<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>
|
||||||
|
@ -48,17 +64,65 @@
|
||||||
<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>
|
||||||
|
@ -73,7 +137,11 @@
|
||||||
</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>
|
||||||
|
@ -88,8 +156,12 @@
|
||||||
<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>
|
||||||
|
@ -104,7 +176,11 @@
|
||||||
</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>
|
||||||
|
@ -123,7 +199,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/paragraph.png</value>
|
<value>%origin%/icons/paragraph.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -133,7 +209,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/links.png</value>
|
<value>%origin%/icons/links.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -143,7 +219,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/press_text.png</value>
|
<value>%origin%/icons/press_text.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -154,7 +230,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/incChar.png</value>
|
<value>%origin%/icons/incChar.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -164,7 +240,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/decChar.png</value>
|
<value>%origin%/icons/decChar.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -174,7 +250,7 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/incKern.png</value>
|
<value>%origin%/icons/incKern.svg</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
</node>
|
</node>
|
||||||
|
@ -184,10 +260,32 @@
|
||||||
</prop>
|
</prop>
|
||||||
<node oor:name="UserDefinedImages">
|
<node oor:name="UserDefinedImages">
|
||||||
<prop oor:name="ImageBigURL">
|
<prop oor:name="ImageBigURL">
|
||||||
<value>%origin%/icons/decKern.png</value>
|
<value>%origin%/icons/decKern.svg</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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -204,7 +302,11 @@
|
||||||
<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">
|
||||||
|
@ -218,6 +320,10 @@
|
||||||
<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">
|
||||||
|
@ -232,30 +338,11 @@
|
||||||
</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>
|
||||||
</prop>
|
<value xml:lang="sr">Ажурирајте бројеве најновијих страница чланака</value>
|
||||||
</node>
|
<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 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>
|
||||||
|
@ -266,6 +353,10 @@
|
||||||
<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">
|
||||||
|
@ -277,8 +368,12 @@
|
||||||
</prop>
|
</prop>
|
||||||
<prop oor:name="Title" oor:type="xs:string">
|
<prop oor:name="Title" oor:type="xs:string">
|
||||||
<value/>
|
<value/>
|
||||||
<value xml:lang="en">Recovery footnotes from text</value>
|
<value xml:lang="en">Restore 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">
|
||||||
|
@ -290,21 +385,66 @@
|
||||||
</prop>
|
</prop>
|
||||||
<prop oor:name="Title" oor:type="xs:string">
|
<prop oor:name="Title" oor:type="xs:string">
|
||||||
<value/>
|
<value/>
|
||||||
<value xml:lang="en">PageBreaks recovery</value>
|
<value xml:lang="en">Restore page breaks</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 clean</value>
|
<value xml:lang="en">Configure cleaning</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>
|
||||||
|
@ -319,7 +459,11 @@
|
||||||
</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>
|
||||||
|
@ -328,13 +472,36 @@
|
||||||
<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>
|
||||||
|
@ -350,6 +517,10 @@
|
||||||
<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>
|
||||||
|
@ -364,7 +535,11 @@
|
||||||
</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>
|
||||||
|
@ -379,7 +554,11 @@
|
||||||
</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>
|
||||||
|
|
|
@ -5,12 +5,14 @@
|
||||||
<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>
|
||||||
|
|
|
@ -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.2.8" />
|
<version value="0.7.16" />
|
||||||
<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.png" />
|
<default xlink:href="icons/addon_icon.svg" />
|
||||||
<high-contrast xlink:href="icons/addon_icon.png" />
|
<high-contrast xlink:href="icons/addon_icon.svg" />
|
||||||
</icon>
|
</icon>
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
|
|
|
@ -1 +1,19 @@
|
||||||
Extenstion for digital publishing in HTML and EPUB with pagingation.
|
Tools for publishing in LibreOffice Writer: books, journals, etc.
|
||||||
|
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
|
||||||
|
|
|
@ -1,2 +1,18 @@
|
||||||
Расширение для верстки документов в html и epub с сохранением пагинации.
|
Инструменты для подготовки документов к публикации в LibreOffice Writer: книг, журналов и т.д.
|
||||||
Предоставляет различные инструменты для автоматизации подготовки документа к публикации.
|
|
||||||
|
Включает в себя следующие инструменты
|
||||||
|
- Создание ссылок между содержаниями и заголовками
|
||||||
|
- Поворот страницы в альбомную ориентацию и обратно
|
||||||
|
- Конвертация документов, экспортированных из InDesing в html
|
||||||
|
- Сборка выпусков журналов из набора статей и шаблона выпуска
|
||||||
|
- Перевод всех найденных шрифтов в стили символов
|
||||||
|
- Включение экспертного режима для расширения "Чистка и проверка"
|
||||||
|
- Конвертация автоматических переносов в ручные
|
||||||
|
- Назначение уникальных стилей всем страницам документа
|
||||||
|
- Footnotes numbering according to outline levels
|
||||||
|
- Configure multiple page styles at once
|
||||||
|
- Сжатие текста, чтобы уместить его на одной странице
|
||||||
|
- Создание двунаправленных ссылок
|
||||||
|
- Замена стиля параграфа с удалением заменяемого (полезно при обработке документов, импортированных из html)
|
||||||
|
- Кнопки для увеличения и уменьшения кернинга
|
||||||
|
- Кнопки для увеличения и уменьшения масштаба символа по ширине
|
||||||
|
|
|
@ -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 albumMark3
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Album" script:language="StarBasic" script:moduleType="normal">Sub albumMark6
|
||||||
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 "Проверьте размеры колонтитулов и перезапустите макрос"
|
MsgBox getTranslation("albumRotationCheckPageSettings")
|
||||||
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 "Произошла ошибка. Обратитесь к разработчику."
|
MsgBox getTranslation("unrecoverableError")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub undoPageAlbum
|
Sub undoPageAlbum
|
||||||
|
@ -61,14 +61,14 @@ sub applyPortraitPageStyle(pageStyleName As String)
|
||||||
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
pageStyle = pageStyles.getByName(pageStyleName)
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
If NOT pageStyle.IsLandScape Then
|
If NOT pageStyle.IsLandScape Then
|
||||||
MsgBox "Страница уже имеет портретную ориентацию. Ничего не делаем. Выходим."
|
MsgBox getTranslation("albumRotationPageIsAlreadyAlbum")
|
||||||
Exit sub
|
Exit sub
|
||||||
EndIf
|
EndIf
|
||||||
If pageStyles.hasByName("portrait_" & pageStyleName) Then
|
If pageStyles.hasByName("portrait_" & pageStyleName) Then
|
||||||
replacePageStyleByPortrait(pageStyleName)
|
replacePageStyleByPortrait(pageStyleName)
|
||||||
removeAlbumFrames(pageStyleName)
|
removeAlbumFrames(pageStyleName)
|
||||||
Else
|
Else
|
||||||
MsgBox "Стиль страницы с портретной ориентацией portrait_" & pageStyleName & " не был найден. "
|
MsgBox getTranslation("albumRotationBackupStyleNotFound1") & " portrait_" & pageStyleName & " " & getTranslation("albumRotationBackupStyleNotFound2")
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
@ -161,7 +161,7 @@ Sub rotatePageClockwise(pageStyleName As String)
|
||||||
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
pageStyle = pageStyles.getByName(pageStyleName)
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
If pageStyle.IsLandScape Then
|
If pageStyle.IsLandScape Then
|
||||||
MsgBox "Страница уже имеет альбомную ориентацию. Ничего не делаем. Выходим."
|
MsgBox getTranslation("albumRotationPageIsAlreadyAlbum")
|
||||||
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 "Высота верхнего колонтитула была задана динамической. Отключаем."
|
MsgBox getTranslation("albumRotationDynamicHeaderHeight")
|
||||||
EndIf
|
EndIf
|
||||||
If pageStyle.HeaderDynamicSpacing Then
|
If pageStyle.HeaderDynamicSpacing Then
|
||||||
checkPageSettings = true
|
checkPageSettings = true
|
||||||
pageStyle.HeaderDynamicSpacing = false
|
pageStyle.HeaderDynamicSpacing = false
|
||||||
MsgBox "Отступ верхнего колонтитула от тела страницы был задан динамическим. Отключаем."
|
MsgBox getTranslation("albumRotationDynamicHeaderOffset")
|
||||||
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 "Высота нижнего колонтитула была задана динамической. Отключаем."
|
MsgBox getTranslation("albumRotationDynamicFooterHeight")
|
||||||
EndIf
|
EndIf
|
||||||
If pageStyle.FooterDynamicSpacing Then
|
If pageStyle.FooterDynamicSpacing Then
|
||||||
checkPageSettings = true
|
checkPageSettings = true
|
||||||
pageStyle.FooterDynamicSpacing = false
|
pageStyle.FooterDynamicSpacing = false
|
||||||
MsgBox "Отступ нижнего колонтитула от тела страницы был задан динамическим. Отключаем."
|
MsgBox getTranslation("albumRotationDynamicFooterOffset")
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
EndIf
|
||||||
'Workaround to force Writer reread new page settings
|
'Workaround to force Writer reread new page settings
|
||||||
|
|
|
@ -1,8 +1,302 @@
|
||||||
<?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 markBooks3
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Books" script:language="StarBasic" script:moduleType="normal">Sub markBooks7
|
||||||
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)
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
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("PageStyles")
|
||||||
|
chainNum = 0
|
||||||
|
For pageCounter = 1 To pageCount
|
||||||
|
If pageNumbers(chainNum) = pageCounter Then
|
||||||
|
fullChain(pageCounter - 1) = pageStyleNames(chainNum)
|
||||||
|
If Ubound(pageNumbers) > 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 > -1 Then
|
||||||
|
pageStart = pageStarts(chainNum)
|
||||||
|
dupName = getDuplicate(duplicateNames(index))
|
||||||
|
pageStart.pageDescName = dupName
|
||||||
|
fullChain(pageCounter - 1) = dupName
|
||||||
|
EndIf
|
||||||
|
If Ubound(pageNumbers) > chainNum Then
|
||||||
|
chainNum = chainNum + 1
|
||||||
|
EndIf
|
||||||
|
Else
|
||||||
|
curName = fullChain(pageCounter - 1)
|
||||||
|
index = getIndex(initNames, curName)
|
||||||
|
If index > -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("allPagesHaveUniqPageStyle")
|
||||||
|
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 <> "" Then
|
||||||
|
getDuplicate = dupName
|
||||||
|
duplicateNames(index) = ""
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Next index
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Sub createPageStyleClones(filteredDupStyles As Variant)
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
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("PageStyles")
|
||||||
|
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("PageStyles")
|
||||||
|
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 & 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 = "" Then
|
||||||
|
getPrefixName = ""
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
num = Asc(Right(tmpName, 1))
|
||||||
|
Do while num >= 48 AND num <= 57
|
||||||
|
tmpName = Trim(Left(tmpName, Len(tmpName) - 1))
|
||||||
|
If tmpName = "" Then
|
||||||
|
getPrefixName = ""
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
num = Asc(Right(tmpName, 1))
|
||||||
|
Loop
|
||||||
|
If tmpName = "Статья" Then
|
||||||
|
Dim result As String
|
||||||
|
result = Trim(initName) & " стр."
|
||||||
|
getPrefixName = result
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
If Len(tmpName) > 4 AND Right(tmpName,4) = "стр." Then
|
||||||
|
getPrefixName = tmpName
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
getPrefixName = tmpName & " "
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Function IsInArrays(newDupNames As Variant, proposeName As String) As Boolean
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
Dim i As Integer
|
||||||
|
Dim names() As String
|
||||||
|
For i = LBound(newDupNames) To Ubound(newDupNames)
|
||||||
|
names = newDupNames(i)
|
||||||
|
If getIndex(names, proposeName) > -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) > 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()
|
||||||
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
Dim i As Integer
|
||||||
|
i = 0
|
||||||
|
Dim first As Boolean
|
||||||
|
first = true
|
||||||
|
While enum1.hasMoreElements
|
||||||
|
enum1Element = enum1.nextElement
|
||||||
|
If enum1Element.supportsService("com.sun.star.text.Paragraph") OR enum1Element.supportsService("com.sun.star.text.TextTable") Then
|
||||||
|
' MRi enum1Element
|
||||||
|
If NOT isEmpty(enum1Element.PageDescName) And enum1Element.PageDescName <> "" Then
|
||||||
|
pageStyleName = enum1Element.PageStyleName
|
||||||
|
addToArray(pageStyleNames(),pageStyleName)
|
||||||
|
If enum1Element.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
|
oViewCursor.goToRange(enum1Element.Anchor,false)
|
||||||
|
ElseIf enum1Element.supportsService("com.sun.star.text.TextTable") 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
|
||||||
|
@ -68,7 +362,7 @@ Sub setUniqPageStyles
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Function hasPageStyleWith(pageStyleName)
|
Function hasPageStyleWith(pageStyleName As String) As Boolean
|
||||||
Dim enum1 As Object
|
Dim enum1 As Object
|
||||||
Dim enum1Element As Object
|
Dim enum1Element As Object
|
||||||
Dim curPage As String
|
Dim curPage As String
|
||||||
|
@ -93,7 +387,7 @@ Function hasPageStyleWith(pageStyleName)
|
||||||
hasPageStyleWith = false
|
hasPageStyleWith = false
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function findFirstPageNumberWithStyle(pageStyleName)
|
Function findFirstPageNumberWithStyle(pageStyleName As String) As Integer
|
||||||
Dim enum1 As Object
|
Dim enum1 As Object
|
||||||
Dim enum1Element As Object
|
Dim enum1Element As Object
|
||||||
Dim curPage As String
|
Dim curPage As String
|
||||||
|
@ -102,6 +396,7 @@ Function findFirstPageNumberWithStyle(pageStyleName)
|
||||||
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()
|
||||||
|
@ -123,4 +418,27 @@ Function findFirstPageNumberWithStyle(pageStyleName)
|
||||||
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("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
|
rem ----------------------------------------------------------------------
|
||||||
|
dim args1(1) as new com.sun.star.beans.PropertyValue
|
||||||
|
args1(0).Name = "Param"
|
||||||
|
args1(0).Value = "alb2"
|
||||||
|
args1(1).Name = "Family"
|
||||||
|
args1(1).Value = 8
|
||||||
|
|
||||||
|
dispatcher.executeDispatch(document, ".uno:StyleNewByExample", "", 0, args1())
|
||||||
|
|
||||||
|
|
||||||
|
end sub
|
||||||
</script:module>
|
</script:module>
|
466
ePublishing/Endnotes.xba
Normal file
|
@ -0,0 +1,466 @@
|
||||||
|
<?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 = "custom_endnote_"
|
||||||
|
Global Const endnoteInTextAnchorSuffix = "-text_anchor"
|
||||||
|
Global Const endnoteInBodyAnchorSuffix = "-body_anchor"
|
||||||
|
|
||||||
|
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("something weird happened error text")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
oSelections = ThisComponent.getCurrentSelection()
|
||||||
|
|
||||||
|
If NOT oSelections.supportsService("com.sun.star.text.TextRanges") Then
|
||||||
|
MsgBox getTranslation("EndnotesNotFound")
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
objectsCount = oSelections.getCount()
|
||||||
|
If objectsCount > 1 Then
|
||||||
|
MsgBox getTranslation("too much selections")
|
||||||
|
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("EndnotesNotFound")
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
If ( customEndnotesCounter = -1 ) Then
|
||||||
|
'only native found window convert to custom?
|
||||||
|
'Window Select paragraph for endnotes output or cancel
|
||||||
|
runEndnotesConversionDialog(foundEndNotes(0))
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
If (nativeEndnotesCounter = -1 ) Then
|
||||||
|
'only custom endnotes found. Window convert to native?
|
||||||
|
runEndnotesCustomToNativeDialog(foundEndNotes(1))
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
'both custom and native endnotes found
|
||||||
|
'convert to custom all or
|
||||||
|
'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("EndnotesConversion")
|
||||||
|
dialog.getControl("found").SetText(getTranslation("EndnotesNativeDialogFound") & CStr(UBound(nativeEndNotes)+1))
|
||||||
|
dialog.getControl("found2").SetText(getTranslation("EndnotesCustomDialogFound") & CStr(UBound(customEndnotes)+1))
|
||||||
|
dialog.getControl("found2").Model.EnableVisible = TRUE
|
||||||
|
dialog.getControl("description").SetText(getTranslation("EndnotesConversionTwoOptions"))
|
||||||
|
dialog.getControl("cancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("start").Label = getTranslation("toNativeEndnotes")
|
||||||
|
dialog.getControl("option2").Label = getTranslation("toCustomEndnotes")
|
||||||
|
dialog.getControl("option2").Model.EnableVisible = TRUE
|
||||||
|
|
||||||
|
|
||||||
|
dialog.setvisible(true)
|
||||||
|
Do While waitingForDialog
|
||||||
|
If dialog.getControl("cancel").model.state = 1 then
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("start").model.state = 1 then
|
||||||
|
convertCustomEndnotesToNative(customEndnotes)
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("option2").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("EndnotesConversion")
|
||||||
|
dialog.getControl("found").SetText(getTranslation("EndnotesCustomDialogFound") & CStr(UBound(customEndnotes)+1))
|
||||||
|
dialog.getControl("description").SetText(getTranslation("EndnotesCustomConversionOption"))
|
||||||
|
dialog.getControl("cancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("start").Label = getTranslation("buttonOk")
|
||||||
|
dialog.setvisible(true)
|
||||||
|
Do While waitingForDialog
|
||||||
|
If dialog.getControl("cancel").model.state = 1 then
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("start").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 = ""
|
||||||
|
If (Len(textRange.HyperLinkURL) > 0) Then
|
||||||
|
getBodyAnchorName = Right(textRange.HyperLinkURL,Len(textRange.HyperLinkURL)-1)
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Function getTextAnchorName(bodyAnchorName As String) As String
|
||||||
|
getTextAnchorName = ""
|
||||||
|
If Len(bodyAnchorName) > Len(endnoteInBodyAnchorSuffix) Then
|
||||||
|
getTextAnchorName = Left(bodyAnchorName,Len(bodyAnchorName)-Len(endnoteInBodyAnchorSuffix)) & 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 <> "Endnote" OR oTextCursor.CharStyleName = "Endnote Symbol" Then
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
'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 = ""
|
||||||
|
oViewCursor.HyperLinkURL=""
|
||||||
|
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("com.sun.star.frame.DispatchHelper")
|
||||||
|
dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, Array())
|
||||||
|
end Sub
|
||||||
|
|
||||||
|
Sub runEndnotesConversionDialog(foundEndNotes As Variant)
|
||||||
|
Dim dialog As Object
|
||||||
|
waitingForDialog = true
|
||||||
|
dialog = notModalDialog("EndnotesConversion")
|
||||||
|
dialog.getControl("found").SetText(getTranslation("EndnotesNativeDialogFound") & CStr(UBound(foundEndNotes)+1))
|
||||||
|
dialog.getControl("description").SetText(getTranslation("EndnotesNativeDialogDescriptionSelect"))
|
||||||
|
dialog.getControl("cancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("start").Label = getTranslation("buttonOk")
|
||||||
|
dialog.setvisible(true)
|
||||||
|
Do While waitingForDialog
|
||||||
|
If dialog.getControl("cancel").model.state = 1 then
|
||||||
|
exit Do
|
||||||
|
EndIf
|
||||||
|
If dialog.getControl("start").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 & RND_String() & "_"
|
||||||
|
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), "com.sun.star.text.fieldmaster.User." & 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)
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
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 = "" Then
|
||||||
|
oViewCursor.String = " "
|
||||||
|
EndIf
|
||||||
|
unoCut()
|
||||||
|
oViewCursor.goToRange(outputPosition,false)
|
||||||
|
getEndnotePara()
|
||||||
|
oViewCursor.ParaStyleName = "Endnote"
|
||||||
|
anchorInBody = createEndnoteSign(outputPosition, sign, fieldPrefix & num, true)
|
||||||
|
addEndnoteSpacer(fieldPrefix)
|
||||||
|
unoPaste()
|
||||||
|
outputPosition = oViewCursor.End
|
||||||
|
oViewCursor.goToRange(nativeEndNoteTextRange,false)
|
||||||
|
endNote.dispose()
|
||||||
|
anchorInText = createEndnoteSign(oViewCursor, sign, fieldPrefix & num, false)
|
||||||
|
bodyAnchorName = fieldPrefix & num & endnoteInBodyAnchorSuffix
|
||||||
|
textAnchorName = fieldPrefix & num & 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) > 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 '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 = "Endnote Symbol"
|
||||||
|
Else
|
||||||
|
oTextCursor.CharStyleName = "Endnote anchor"
|
||||||
|
EndIf
|
||||||
|
oField = ThisComponent.createInstance("com.sun.star.text.textfield.User")
|
||||||
|
oMasters = ThisComponent.getTextFieldMasters()
|
||||||
|
If oMasters.hasByName("com.sun.star.text.FieldMaster.User" & "." & fieldName) Then
|
||||||
|
oFieldMaster = oMasters.getByName("com.sun.star.text.FieldMaster.User" & "." & fieldName)
|
||||||
|
oFieldMaster.Name = fieldName
|
||||||
|
oFieldMaster.Content = sign
|
||||||
|
Else
|
||||||
|
oFieldMaster = ThisComponent.createInstance("com.sun.star.text.FieldMaster.User")
|
||||||
|
oFieldMaster.Name = fieldName
|
||||||
|
oFieldMaster.Content = sign
|
||||||
|
EndIf
|
||||||
|
oField.attachTextFieldMaster(oFieldMaster)
|
||||||
|
oTextCursor.Text.insertTextContent(oTextCursor, oField, False)
|
||||||
|
oTextCursor.CharStyleName = "Standard"
|
||||||
|
oTextCursor.goLeft(1,false)
|
||||||
|
createEndnoteSign = oTextCursor
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub addEndnoteSpacer(fieldPrefix As String)
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
insertUserField(oViewCursor,fieldPrefix & "spacer"," ")
|
||||||
|
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 = "vnd.sun.star.script:ePublishing." & dialogName & "?location=application"
|
||||||
|
windowProvider = CreateUnoService("com.sun.star.awt.ContainerWindowProvider")
|
||||||
|
dialog = windowProvider.createContainerWindow(dialogUrl, "", 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("com.sun.star.text.Paragraph") Then
|
||||||
|
findEndNotesInParagraph(enum1Element, nativeEndNotes, customEndNotes)
|
||||||
|
ElseIf enum1Element.supportsService("com.sun.star.text.TextTable") 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("com.sun.star.text.Paragraph") 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, "#" & endnoteFieldPrefix) = 1 And portion.String <> "" Then
|
||||||
|
If InStr(portion.HyperLinkURL, endnoteInBodyAnchorSuffix) > 0 Then
|
||||||
|
isCustomEndnote = true
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
isCustomEndnote = false
|
||||||
|
End Function
|
||||||
|
|
||||||
|
</script:module>
|
12
ePublishing/EndnotesConversion.xdl
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?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>
|
|
@ -1,12 +1,30 @@
|
||||||
<?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 footMark1
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Footnotes" script:language="StarBasic" script:moduleType="normal">sub footMark8
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub openFootNotesDialog
|
Sub openFootNotesDialog
|
||||||
Dim dialog As Object
|
Dim dialog As Object
|
||||||
DialogLibraries.LoadLibrary("ePublishing")
|
DialogLibraries.LoadLibrary("ePublishing")
|
||||||
dialog = CreateUnoDialog(DialogLibraries.ePublishing.FootnotesConfig)
|
dialog = CreateUnoDialog(DialogLibraries.ePublishing.FootnotesConfig)
|
||||||
|
dialog.getControl("buttonOK").Label = getTranslation("buttonOk")
|
||||||
|
dialog.getControl("buttonCancel").Label = getTranslation("buttonCancel")
|
||||||
|
dialog.getControl("configText1").setText(getTranslation("configText1"))
|
||||||
|
dialog.getControl("configText2").setText(getTranslation("configText2"))
|
||||||
|
dialog.getControl("configText3").setText(getTranslation("configText3"))
|
||||||
|
dialog.getControl("configText4").setText(getTranslation("configText4"))
|
||||||
|
dialog.getControl("configText5").setText(getTranslation("configText5"))
|
||||||
|
dialog.getControl("notesTypeLabel").setText(getTranslation("FootnotesConfigDialogNotesTypeLabel"))
|
||||||
|
dialog.getControl("PerPageRangeLabel").setText(getTranslation("FootnotesConfigDialogNotesPerPageRangeLabel"))
|
||||||
|
|
||||||
|
dialog.getControl("groupByPages").Model.Label = getTranslation("FootnotesConfigDialogNotesPerPage")
|
||||||
|
dialog.getControl("groupByHeadings").Model.Label = getTranslation("FootnotesConfigDialogNotesByHeadingsLabel")
|
||||||
|
dialog.Title = getTranslation("footnotesConfigDialogTitle")
|
||||||
|
Dim nCount As Integer
|
||||||
|
nCount = dialog.getControl("lb_notes_types").getItemCount()
|
||||||
|
dialog.getControl("lb_notes_types").addItem( getTranslation("FootnotesConfigDialogFootnotesName"), nCount )
|
||||||
|
dialog.getControl("lb_notes_types").addItem( getTranslation("FootnotesConfigDialogEndnotesName"), nCount + 1 )
|
||||||
|
dialog.getControl("lb_notes_types").selectItemPos( 0, True )
|
||||||
dialog.setVisible(true)
|
dialog.setVisible(true)
|
||||||
Select Case dialog.Execute()
|
Select Case dialog.Execute()
|
||||||
Case 1
|
Case 1
|
||||||
|
@ -16,75 +34,107 @@ Sub openFootNotesDialog
|
||||||
dialog.dispose()
|
dialog.dispose()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub setFootnotesNumberingFrom(dialog)
|
Sub setFootnotesNumberingFrom(dialog As Object)
|
||||||
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
|
||||||
targetLevel = dialog.getControl("level").Value
|
stringLevelInput = dialog.getControl("level").getText
|
||||||
|
stringPageRangeInput = dialog.getControl("pageRange").getText
|
||||||
|
noteType = dialog.getControl("lb_notes_types").getSelectedItemPos()
|
||||||
|
If (stringLevelInput <> "") Then
|
||||||
|
targetLevel = CInt(stringLevelInput)
|
||||||
If targetLevel > -1 AND targetLevel < 11 Then
|
If targetLevel > -1 AND targetLevel < 11 Then
|
||||||
statusIndicator.Start("Нумерую сноски",100)
|
statusIndicator.Start(getTranslation("statusNumberingInProcess"),100)
|
||||||
setFootnotesNumberingLevel(targetLevel)
|
setFootnotesNumberingLevel(targetLevel,noteType)
|
||||||
Else
|
Else
|
||||||
MsgBox "Значение уровня заголовков вне допустимого диапазона. Введите число от 0 до 10."
|
MsgBox getTranslation("numberingInputOutOfRange")
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If (stringPageRangeInput <> "") Then
|
||||||
|
Dim pageNums() As Integer
|
||||||
|
getPageNumsFrom(stringPageRangeInput, pageNums())
|
||||||
|
statusIndicator.Start(getTranslation("statusNumberingInProcess"),100)
|
||||||
|
setNotesPaginatedNumbering(noteType, pageNums())
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
statusIndicator.end()
|
statusIndicator.end()
|
||||||
|
MsgBox getTranslation("statusNumberingFinished")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Sub setFootnotesNumberingLevel(level)
|
Sub setNotesPaginatedNumbering(noteType As Integer, pageNums() As Integer)
|
||||||
|
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("statusNumberingInProcess"),30)
|
||||||
|
curNum = 1
|
||||||
|
prevPage = ""
|
||||||
|
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 <> prevPage) Then
|
||||||
|
curNum = 1
|
||||||
|
prevPage = curPage
|
||||||
|
EndIf
|
||||||
|
label = curNote.getLabel
|
||||||
|
If label = "" Or IsNumeric(label) Then
|
||||||
|
curNote.setLabel(CStr(curNum))
|
||||||
|
addToArray(notesToValidate,curnote)
|
||||||
|
curNum = curNum + 1
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
Next i
|
||||||
|
'Second pass in case layout has changed
|
||||||
|
For i = 0 To Ubound(notesToValidate)
|
||||||
|
curNote = notesToValidate(i)
|
||||||
|
curPage = getPageNumberVCurs(curNote.Anchor)
|
||||||
|
If (curPage <> 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 cellEnum2 As Object
|
|
||||||
|
|
||||||
Dim statusIndicator as Object
|
Dim statusIndicator as Object
|
||||||
|
|
||||||
statusIndicator = ThisComponent.getCurrentController.statusIndicator
|
statusIndicator = ThisComponent.getCurrentController.statusIndicator
|
||||||
statusIndicator.Start("Нумерация сносок запущена, подождите",30)
|
statusIndicator.Start(getTranslation("statusNumberingInProcess"),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("com.sun.star.text.Paragraph") Then
|
If enum1Element.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
If enum1Element.OutlineLevel = level Then
|
traverseNoteParagraphs(curNum, enum1Element ,noteType, level)
|
||||||
curNum = 1
|
|
||||||
EndIf
|
|
||||||
enum2 = enum1Element.createEnumeration
|
|
||||||
While enum2.hasMoreElements
|
|
||||||
thisPortion = enum2.nextElement
|
|
||||||
If thisPortion.TextPortionType = "Footnote" Then
|
|
||||||
footnoteText = thisPortion.Footnote
|
|
||||||
label = footnoteText.getLabel
|
|
||||||
If label = "" Then
|
|
||||||
If level > 0 Then
|
|
||||||
footnoteText.setLabel(CStr(curNum))
|
|
||||||
curNum = curNum + 1
|
|
||||||
EndIf
|
|
||||||
Else
|
|
||||||
labelNum = CInt(label)
|
|
||||||
If labelNum > 0 Then
|
|
||||||
If level < 1 Then
|
|
||||||
footnoteText.setLabel("")
|
|
||||||
Else
|
|
||||||
footnoteText.setLabel(CStr(curNum))
|
|
||||||
EndIf
|
|
||||||
curNum = curNum + 1
|
|
||||||
EndIf
|
|
||||||
EndIf
|
|
||||||
EndIf
|
|
||||||
Wend
|
|
||||||
ElseIf enum1Element.supportsService("com.sun.star.text.TextTable") Then
|
ElseIf enum1Element.supportsService("com.sun.star.text.TextTable") Then
|
||||||
cellNames = enum1Element.cellNames
|
cellNames = enum1Element.cellNames
|
||||||
For i = LBound(cellNames) To Ubound(cellNames)
|
For i = LBound(cellNames) To Ubound(cellNames)
|
||||||
|
@ -93,13 +143,28 @@ Sub setFootnotesNumberingLevel(level)
|
||||||
While cellEnum.hasMoreElements
|
While cellEnum.hasMoreElements
|
||||||
cellEnumElement = cellEnum.nextElement
|
cellEnumElement = cellEnum.nextElement
|
||||||
If cellEnumElement.supportsService("com.sun.star.text.Paragraph") Then
|
If cellEnumElement.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
If cellEnumElement.OutlineLevel = level 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
|
||||||
curNum = 1
|
curNum = 1
|
||||||
EndIf
|
EndIf
|
||||||
cellEnum2 = cellEnumElement.createEnumeration
|
textPortions = enum1Element.createEnumeration
|
||||||
While cellEnum2.hasMoreElements
|
While textPortions.hasMoreElements
|
||||||
thisPortion = cellEnum2.nextElement
|
thisPortion = textPortions.nextElement
|
||||||
If thisPortion.TextPortionType = "Footnote" Then
|
If isTargetNote(thisPortion, noteType) Then
|
||||||
footnoteText = thisPortion.Footnote
|
footnoteText = thisPortion.Footnote
|
||||||
label = footnoteText.getLabel
|
label = footnoteText.getLabel
|
||||||
If label = "" Then
|
If label = "" Then
|
||||||
|
@ -108,27 +173,103 @@ Sub setFootnotesNumberingLevel(level)
|
||||||
curNum = curNum + 1
|
curNum = curNum + 1
|
||||||
EndIf
|
EndIf
|
||||||
Else
|
Else
|
||||||
labelNum = CInt(label)
|
If IsNumeric(label) Then
|
||||||
If labelNum > 0 Then
|
|
||||||
If level < 1 Then
|
If level < 1 Then
|
||||||
footnoteText.setLabel("")
|
footnoteText.setLabel("")
|
||||||
Else
|
Else
|
||||||
footnoteText.setLabel(CStr(curNum))
|
footnoteText.setLabel(CStr(curNum))
|
||||||
EndIf
|
|
||||||
curNum = curNum + 1
|
curNum = curNum + 1
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
EndIf
|
||||||
Wend
|
|
||||||
EndIf
|
EndIf
|
||||||
Wend
|
Wend
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Function isTargetNote(portion As Object, noteType As Integer) As Boolean
|
||||||
|
If ( portion.TextPortionType <> "Footnote" ) Then
|
||||||
|
isTargetNote = false
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
If ( isEndNote(portion) = CBool(noteType) ) Then
|
||||||
|
isTargetNote = true
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
isTargetNote = false
|
||||||
|
End Function
|
||||||
|
|
||||||
|
'Sub testRange
|
||||||
|
' Dim pageNums() As Integer
|
||||||
|
' getPageNumsFrom("9-10,8-12,-111-099,99,102,105,187,187",pageNums())
|
||||||
|
'End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Sub getPageNumsFrom(inputString As String, pageNums() As Integer)
|
||||||
|
Dim ranges() As String
|
||||||
|
ranges = split(inputString,",")
|
||||||
|
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, "-")
|
||||||
|
|
||||||
|
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 <= secondNum Then
|
||||||
|
For i = firstNum To secondNum
|
||||||
|
If (NOT IsInArray(pageNums, i)) Then
|
||||||
|
addToArray(pageNums, i)
|
||||||
|
EndIf
|
||||||
Next i
|
Next i
|
||||||
EndIf
|
EndIf
|
||||||
Wend
|
EndIf
|
||||||
statusIndicator.end()
|
EndIf
|
||||||
MsgBox "Нумерация сносок успешно завершена."
|
If UBound(rangeParts) = 0 Then
|
||||||
|
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
|
||||||
|
@ -143,4 +284,27 @@ Private Sub doNotTrack
|
||||||
args1(0).Value = true
|
args1(0).Value = true
|
||||||
dispatcher.executeDispatch(document, ".uno:ShowTrackedChanges", "", 0, args1())
|
dispatcher.executeDispatch(document, ".uno:ShowTrackedChanges", "", 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()
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
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>
|
|
@ -1,17 +1,30 @@
|
||||||
<?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="160" dlg:height="98" 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="157" dlg:height="170" 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="Label1" dlg:tab-index="0" dlg:left="16" dlg:top="41" dlg:width="112" dlg:height="10" dlg:value="Начинать нумерацию сносок заново "/>
|
<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="Label2" dlg:tab-index="1" dlg:left="158" dlg:top="132" dlg:width="0" dlg:height="2" dlg:value="Label2"/>
|
<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: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:text dlg:id="Label7" dlg:tab-index="10" dlg:left="17" dlg:top="28" dlg:width="122" dlg:height="10" dlg:value="0 - возврат к стандартной нумерации"/>
|
<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:numericfield dlg:id="level" dlg:tab-index="6" dlg:left="77" dlg:top="55" dlg:width="17" dlg:height="10"/>
|
<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: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>
|
|
@ -1,24 +1,25 @@
|
||||||
<?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 markHyph4
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Hyphenations" script:language="StarBasic">Private Sub markHyph
|
||||||
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 = "Запустить конвертацию автоматических переносов в ручные?"
|
description = getTranslation("hyphenationConfirmation")
|
||||||
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("Произвожу конвертацию, подождите",10)
|
statusIndicator.Start(getTranslation("hyphenationsInProgress"),10)
|
||||||
turnOffTracking
|
turnOffTracking
|
||||||
|
setZoomToSpeedUpTasks()
|
||||||
AcceptAllTrackedChanges
|
AcceptAllTrackedChanges
|
||||||
convertHyphInText(ThisComponent.Text)
|
convertHyphInText(ThisComponent.Text)
|
||||||
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
statusIndicator.Start("Произвожу конвертацию, подождите",70)
|
statusIndicator.Start(getTranslation("hyphenationsInProgress"),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)
|
||||||
|
@ -26,13 +27,18 @@ Private Sub convertHyphInDoc()
|
||||||
Next
|
Next
|
||||||
'disableAutoHyph()
|
'disableAutoHyph()
|
||||||
statusIndicator.end()
|
statusIndicator.end()
|
||||||
MsgBox "Конвертация переносов успешно завершена."
|
MsgBox getTranslation("hyphenationsSuccess")
|
||||||
|
|
||||||
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))
|
||||||
|
@ -50,6 +56,8 @@ 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
|
||||||
|
@ -67,18 +75,21 @@ Private Sub convertHyphInText(textElement As Object)
|
||||||
Wend
|
Wend
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub convertParaHyphens(para)
|
Private Sub convertParaHyphens(para As Object)
|
||||||
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
|
||||||
' Dim lineShifts() As Integer
|
' Dim lineShifts() As Integer
|
||||||
Dim charNum as Integer
|
Dim charNum as Long
|
||||||
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
|
||||||
'No hyphenation needed
|
'No hyphenation needed
|
||||||
If para.ParaIsHyphenation = false Then
|
If para.ParaIsHyphenation = false Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
|
@ -153,7 +164,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 "Конвертация прервана. Обратитесь к разработчику."
|
MsgBox getTranslation("hyphenationsFailed")
|
||||||
Stop
|
Stop
|
||||||
EndIf
|
EndIf
|
||||||
Next i
|
Next i
|
||||||
|
@ -170,13 +181,13 @@ Private Sub insertBreak(tCursor As Object)
|
||||||
tCursor.String = ""
|
tCursor.String = ""
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function getPrevChar(tCurs As Object)
|
Private Function getPrevChar(tCurs As Object) As String
|
||||||
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)
|
Private Function getNextChar(tCurs As Object) As String
|
||||||
tCurs.goRight(1,true)
|
tCurs.goRight(1,true)
|
||||||
getNextChar = tCurs.getString()
|
getNextChar = tCurs.getString()
|
||||||
tCurs.goLeft(1,false)
|
tCurs.goLeft(1,false)
|
||||||
|
@ -200,7 +211,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 "Конвертация переносов не выполнена. Алгоритм нуждается в доработке. Обратитесь к разработчику."
|
MsgBox getTranslation("hyphenationsFailed")
|
||||||
Stop
|
Stop
|
||||||
EndIf
|
EndIf
|
||||||
End Sub
|
End Sub
|
||||||
|
@ -291,7 +302,7 @@ Private Sub stretchLine(tCurs As Object)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function getParaLineNumber(vCursor As Object)
|
Private Function getParaLineNumber(vCursor As Object) As Integer
|
||||||
Dim lineNumber As Integer
|
Dim lineNumber As Integer
|
||||||
Dim oSavePosition As Object
|
Dim oSavePosition As Object
|
||||||
Dim tCursor As Object
|
Dim tCursor As Object
|
||||||
|
@ -325,9 +336,9 @@ End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Private Function needHyphen(before As String, after As String,lineLength As Integer)
|
Private Function needHyphen(before As String, after As String,lineLength As Integer) As boolean
|
||||||
Dim charNumBefore as Integer
|
Dim charNumBefore as Long
|
||||||
Dim charNumAfter as Integer
|
Dim charNumAfter as Long
|
||||||
needHyphen = true
|
needHyphen = true
|
||||||
If lineLength < 2 Then
|
If lineLength < 2 Then
|
||||||
needHyphen = false
|
needHyphen = false
|
||||||
|
@ -370,6 +381,10 @@ Dim charNumAfter as Integer
|
||||||
needHyphen = false
|
needHyphen = false
|
||||||
Case "/"
|
Case "/"
|
||||||
needHyphen = false
|
needHyphen = false
|
||||||
|
Case "?"
|
||||||
|
needHyphen = false
|
||||||
|
Case "!"
|
||||||
|
needHyphen = false
|
||||||
End Select
|
End Select
|
||||||
Select Case after
|
Select Case after
|
||||||
Case " "
|
Case " "
|
||||||
|
@ -420,7 +435,5 @@ Private Function confirm(description)
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Sub Macro1
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
</script:module>
|
</script:module>
|
|
@ -19,8 +19,251 @@ 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 <> 1 AND (startPage <> 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 & " " & rightHeight
|
||||||
|
EndIf
|
||||||
|
|
||||||
Function changeCharWidth(delta) As Boolean
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
'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 > 10
|
||||||
|
Do While pageStyle.FootnoteHeight < decrement
|
||||||
|
decrement = decrement / 2
|
||||||
|
Loop
|
||||||
|
newHeight = pageStyle.FootnoteHeight - decrement
|
||||||
|
pageStyle.FootnoteHeight = newHeight
|
||||||
|
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
|
||||||
|
If tmpPageNum <> pageNumber Then
|
||||||
|
If decrement < 4 Then
|
||||||
|
pageStyle.FootnoteHeight = pageStyle.FootnoteHeight + decrement * 2
|
||||||
|
'Hack to force libreoffice to refresh page layout
|
||||||
|
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
|
||||||
|
If tmpPageNum <> pageNumber Then
|
||||||
|
pageStyle.Height = savePageHeight + 100
|
||||||
|
pageStyle.Height = savePageHeight
|
||||||
|
EndIf
|
||||||
|
Exit Do
|
||||||
|
Else
|
||||||
|
newHeight = pageStyle.FootnoteHeight + decrement
|
||||||
|
decrement = decrement / 2
|
||||||
|
pageStyle.FootnoteHeight = newHeight
|
||||||
|
'Hack to force libreoffice to refresh page layout
|
||||||
|
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
|
||||||
|
If tmpPageNum <> pageNumber Then
|
||||||
|
pageStyle.Height = savePageHeight + 100
|
||||||
|
pageStyle.Height = savePageHeight
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
Loop
|
||||||
|
|
||||||
|
tmpPageNum = getPageNumberVCurs(fnAreaEnd)
|
||||||
|
If tmpPageNum <> pageNumber Then
|
||||||
|
pageStyle.FootnoteHeight = 0
|
||||||
|
MsgBox "Error"
|
||||||
|
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("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
|
rem ----------------------------------------------------------------------
|
||||||
|
dispatcher.executeDispatch(document, ".uno:PageSettingDialog", "", 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
|
||||||
|
' 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 >= pageNumber Then
|
||||||
|
noteStartPage = getPageNumberVCurs(curNote.Text.Start)
|
||||||
|
If pageNumber = noteStartPage Or (noteStartPage < pageNumber And noteEndPage >= 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
|
||||||
|
' 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 >= pageNumber Then
|
||||||
|
noteStartPage = getPageNumberVCurs(curNote.Text.Start)
|
||||||
|
If pageNumber = noteStartPage Or (noteStartPage < pageNumber And noteEndPage >= pageNumber) Then
|
||||||
|
pageHasNotes = true
|
||||||
|
EndIf
|
||||||
|
If pageHasNotes AND pageNumber < noteStartPage Then
|
||||||
|
getFNAreaEnd = prevNote.Text.createTextCursorByRange(prevNote.Text.End)
|
||||||
|
Exit function
|
||||||
|
Endif
|
||||||
|
If pageHasNotes AND pageNumber < 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) > pageNum Then
|
||||||
|
'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 <= pageNum Then
|
||||||
|
Exit Do
|
||||||
|
EndIf
|
||||||
|
oViewCursor.goLeft(1,false)
|
||||||
|
tmpPageNum = getPageNumber(oViewCursor)
|
||||||
|
Loop While tmpPageNum > 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)
|
||||||
|
'oEnum = aNote.Text.createEnumeration()
|
||||||
|
noteStart = aNote.Text.createTextCursorByRange(aNote.Text.Start)
|
||||||
|
noteEnd = aNote.Text.createTextCursorByRange(aNote.Text.End)
|
||||||
|
If pageNumber = getPageNumber(noteStart) Then
|
||||||
|
MsgBox "Starts here " & x & " page number " & pageNumber
|
||||||
|
Exit sub
|
||||||
|
Endif
|
||||||
|
If pageNumber = getPageNumber(noteEnd) Then
|
||||||
|
MsgBox "ends here " + x
|
||||||
|
Exit sub
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
'Do While oEnum.hasMoreElements()
|
||||||
|
' oCurPar = oEnum.nextElement()
|
||||||
|
'Loop
|
||||||
|
Next
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary("MRILib")
|
||||||
|
'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
|
||||||
|
@ -34,7 +277,7 @@ Function changeCharWidth(delta) As Boolean
|
||||||
oViewCursor.charScaleWidth = charScale + delta
|
oViewCursor.charScaleWidth = charScale + delta
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Function changeKern(delta) As Boolean
|
Function changeKern(delta As Integer) 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
|
||||||
|
@ -46,4 +289,21 @@ Function changeKern(delta) 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("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
|
rem ----------------------------------------------------------------------
|
||||||
|
dispatcher.executeDispatch(document, ".uno:Undo", "", 0, Array())
|
||||||
|
|
||||||
|
|
||||||
|
end sub
|
||||||
</script:module>
|
</script:module>
|
|
@ -1,14 +1,43 @@
|
||||||
<?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="133" dlg:top="45" dlg:width="250" dlg:height="251" 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="102" dlg:top="13" dlg:width="386" dlg:height="316" dlg:closeable="true" dlg:moveable="true">
|
||||||
<dlg:styles>
|
<dlg:styles>
|
||||||
<dlg:style dlg:style-id="0" dlg:background-color="0xb4c7dc"/>
|
<dlg:style dlg:style-id="0" dlg:border="simple"/>
|
||||||
<dlg:style dlg:style-id="1" dlg:background-color="0x3faf46"/>
|
<dlg:style dlg:style-id="1" dlg:border="none"/>
|
||||||
</dlg:styles>
|
</dlg:styles>
|
||||||
<dlg:bulletinboard>
|
<dlg:bulletinboard>
|
||||||
<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="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="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="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: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="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="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="topPageMargin" dlg:tab-index="4" dlg:left="204" dlg:top="32" dlg:width="16" dlg:height="10" dlg:valign="center" dlg:value="1000"/>
|
||||||
|
<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&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>
|
|
@ -1,6 +1,202 @@
|
||||||
<?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">Sub setDimensions
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="PageStyles" script:language="StarBasic" script:moduleType="normal">
|
||||||
|
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("ePublishing")
|
||||||
|
pDialog = CreateUnoDialog( DialogLibraries.ePublishing.PageConfig )
|
||||||
|
imageURL = convertToURL(getExtensionPath() + "/images/panel.svg")
|
||||||
|
pDialog.getControl("ImageControl1").model.imageURL = imageURL
|
||||||
|
pDialog.getControl("ImageControl1").model.ScaleMode = 2
|
||||||
|
pDialog.getControl("description").setText(getTranslation("PageConfigDialogTranslations"))
|
||||||
|
cleanPageSettings()
|
||||||
|
setHelpText()
|
||||||
|
pDialog.getControl("Cancel").Label = getTranslation("PageConfigDialogCancelButton")
|
||||||
|
pDialog.getControl("Ok").Label = getTranslation("PageConfigDialogOkButton")
|
||||||
|
listBox = pDialog.getControl("pageStyles")
|
||||||
|
listBox.addItems(displayPageStyleNames, 0)
|
||||||
|
pDialog.Title = getTranslation("PageConfigDialogTitle")
|
||||||
|
pDialog.Execute()
|
||||||
|
pDialog.dispose()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function getExtensionPath As String
|
||||||
|
Dim extensionIdentifier As String
|
||||||
|
Dim pip As Object
|
||||||
|
extensionIdentifier = "pro.litvinovg.epublishing"
|
||||||
|
pip = GetDefaultContext.getByName("/singletons/com.sun.star.deployment.PackageInformationProvider")
|
||||||
|
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("Ok").Model.State = 0
|
||||||
|
styles = pDialog.getControl("pageStyles")
|
||||||
|
'Mri styles
|
||||||
|
selectedItems = styles.getSelectedItems
|
||||||
|
If Ubound(selectedItems) < 0 Then
|
||||||
|
MsgBox getTranslation("pageStylesNoStyleSelected")
|
||||||
|
Exit sub
|
||||||
|
EndIf
|
||||||
|
If noPageSettings() Then
|
||||||
|
MsgBox getTranslation("pageStylesNoSettingsSet")
|
||||||
|
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("PageConfigSettingsApplied")
|
||||||
|
cleanPageSettings()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Sub cleanPageSettings()
|
||||||
|
pDialog.getControl("pageHeight").setText("")
|
||||||
|
pDialog.getControl("pageWidth").setText("")
|
||||||
|
pDialog.getControl("leftPageMargin").setText("")
|
||||||
|
pDialog.getControl("topPageMargin").setText("")
|
||||||
|
pDialog.getControl("rightPageMargin").setText("")
|
||||||
|
pDialog.getControl("bottomPageMargin").setText("")
|
||||||
|
pDialog.getControl("headerHeight").setText("")
|
||||||
|
pDialog.getControl("headerOffset").setText("")
|
||||||
|
pDialog.getControl("footerHeight").setText("")
|
||||||
|
pDialog.getControl("footerOffset").setText("")
|
||||||
|
pDialog.getControl("footnoteAreaHeight").setText("")
|
||||||
|
pDialog.getControl("footnoteAreaOffset").setText("")
|
||||||
|
pDialog.getControl("textToLine").setText("")
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub setHelpText
|
||||||
|
pDialog.getControl("pageHeight").Model.HelpText = getTranslation("PageConfigPageHeight")
|
||||||
|
pDialog.getControl("pageWidth").Model.HelpText = getTranslation("PageConfigPageWidth")
|
||||||
|
pDialog.getControl("leftPageMargin").Model.HelpText = getTranslation("PageConfigLeftPageMargin")
|
||||||
|
pDialog.getControl("topPageMargin").Model.HelpText = getTranslation("PageConfigTopPageMargin")
|
||||||
|
pDialog.getControl("rightPageMargin").Model.HelpText = getTranslation("PageConfigRightPageMargin")
|
||||||
|
pDialog.getControl("bottomPageMargin").Model.HelpText = getTranslation("PageConfigBottomPageMargin")
|
||||||
|
pDialog.getControl("headerHeight").Model.HelpText = getTranslation("PageConfigHeaderHeight")
|
||||||
|
pDialog.getControl("headerOffset").Model.HelpText = getTranslation("PageConfigHeaderOffset")
|
||||||
|
pDialog.getControl("footerHeight").Model.HelpText = getTranslation("PageConfigFooterHeight")
|
||||||
|
pDialog.getControl("footerOffset").Model.HelpText = getTranslation("PageConfigFooterOffset")
|
||||||
|
pDialog.getControl("footnoteAreaHeight").Model.HelpText = getTranslation("PageConfigFootnoteAreaHeight")
|
||||||
|
pDialog.getControl("footnoteAreaOffset").Model.HelpText = getTranslation("PageConfigFootnoteAreaOffset")
|
||||||
|
pDialog.getControl("textToLine").Model.HelpText = getTranslation("PageConfigTextToLine")
|
||||||
|
pDialog.getControl("mm1").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm2").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm3").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm4").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm5").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm6").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm7").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm8").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm9").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm10").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm11").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm12").setText(getTranslation("PageConfigMM"))
|
||||||
|
pDialog.getControl("mm13").setText(getTranslation("PageConfigMM"))
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Function noPageSettings() As Boolean
|
||||||
|
Dim setting As String
|
||||||
|
noPageSettings = true
|
||||||
|
setting = pDialog.getControl("pageHeight").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("pageWidth").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("leftPageMargin").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("topPageMargin").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("rightPageMargin").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("bottomPageMargin").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("headerHeight").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("headerOffset").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("footerHeight").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("footerOffset").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("footnoteAreaHeight").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("footnoteAreaOffset").getText()
|
||||||
|
If Len(setting) > 0 Then
|
||||||
|
noPageSettings = false
|
||||||
|
EndIf
|
||||||
|
setting = pDialog.getControl("textToLine").getText()
|
||||||
|
If Len(setting) > 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
|
||||||
|
@ -12,6 +208,9 @@
|
||||||
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
|
||||||
|
@ -27,85 +226,112 @@
|
||||||
Dim footnoteLineTextDistance As Long
|
Dim footnoteLineTextDistance As Long
|
||||||
|
|
||||||
oStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
oStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
inputWidth = InputBox("Введите ширину страниц (в мм):", "Установка ширины всех страниц документа", "")
|
inputWidth = pDialog.getControl("pageWidth").getText()
|
||||||
inputHeight = InputBox("Введите высоту страниц (в мм):", "Установка высоты всех страниц документа", "")
|
inputHeight = pDialog.getControl("pageHeight").getText()
|
||||||
inputTopMargin = InputBox("Введите размер верхнего поля (в мм):", "Установка размера верхнего поля для всех страниц", "")
|
inputTopMargin = pDialog.getControl("topPageMargin").getText()
|
||||||
inputBottomMargin = InputBox("Введите резмер нижнего поля (в мм):", "Установка размера нижнего поля для всех страниц", "")
|
inputBottomMargin = pDialog.getControl("bottomPageMargin").getText()
|
||||||
inputLeftMargin = InputBox("Введите размер левого поля (в мм):", "Установка размера левого поля для всех страниц", "")
|
inputLeftMargin = pDialog.getControl("leftPageMargin").getText()
|
||||||
inputRightMargin = InputBox("Введите размер правого поля (в мм):", "Установка размера правого поля для всех страниц", "")
|
inputRightMargin = pDialog.getControl("rightPageMargin").getText()
|
||||||
inputHeaderBodyDistance = InputBox("Введите расстояние от верхнего колонтитула до текста (в сотых долях мм):", "Установка расстояния от верхнего колонтитула до текста", "")
|
inputHeaderBodyDistance = pDialog.getControl("headerOffset").getText()
|
||||||
inputFooterBodyDistance = InputBox("Введите расстояние от нижнего колонтитула до текста (в сотых долях мм):", "Установка расстояния от нижнего колонтитула до текста ", "")
|
inputFooterBodyDistance = pDialog.getControl("footerOffset").getText()
|
||||||
inputFootnoteLineTextDistance = InputBox("Введите расстояние от текста страницы до линии сноски (в сотых долях мм):", "Установка расстояния от текста страницы до линии сноски ", "")
|
|
||||||
inputFootnoteLineDistance = InputBox("Введите расстояние от линии сноски до текста сноски (в сотых долях мм):", "Установка расстояния от линии сноски до текста сноски ", "")
|
|
||||||
|
|
||||||
For i = 0 to oStyles.Count - 1
|
inputFooterHeight = pDialog.getControl("footerHeight").getText()
|
||||||
curStyle = oStyles.getByIndex(i)
|
inputHeaderHeight = pDialog.getControl("headerHeight").getText()
|
||||||
|
inputFootnoteArea = pDialog.getControl("footnoteAreaHeight").getText()
|
||||||
|
|
||||||
|
inputFootnoteLineTextDistance = pDialog.getControl("textToLine").getText()
|
||||||
|
'InputBox("Введите расстояние от текста страницы до линии сноски (в сотых долях мм):", "Установка расстояния от текста страницы до линии сноски ", "")
|
||||||
|
inputFootnoteLineDistance = pDialog.getControl("footnoteAreaOffset").getText()
|
||||||
|
'InputBox("Введите расстояние от линии сноски до текста сноски (в сотых долях мм):", "Установка расстояния от линии сноски до текста сноски ", "")
|
||||||
|
|
||||||
|
|
||||||
|
curStyle = targetStyle
|
||||||
|
'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) > 0 Then
|
||||||
|
Dim footnoteArea As Long
|
||||||
|
footnoteArea = covertMMtoLong(inputFootnoteArea)
|
||||||
|
curStyle.FootnoteHeight = footnoteArea
|
||||||
|
EndIf
|
||||||
|
|
||||||
If CLng(inputHeaderBodyDistance) > 0 Then
|
If covertMMtoLong(inputHeaderBodyDistance) > 0 Then
|
||||||
headerBodyDistance = CLng(inputHeaderBodyDistance)
|
headerBodyDistance = covertMMtoLong(inputHeaderBodyDistance)
|
||||||
curStyle.HeaderBodyDistance = headerBodyDistance
|
curStyle.HeaderBodyDistance = headerBodyDistance
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputFooterBodyDistance) > 0 Then
|
If covertMMtoLong(inputFooterBodyDistance) > 0 Then
|
||||||
footerBodyDistance = CLng(inputFooterBodyDistance)
|
footerBodyDistance = covertMMtoLong(inputFooterBodyDistance)
|
||||||
curStyle.FooterBodyDistance = footerBodyDistance
|
curStyle.FooterBodyDistance = footerBodyDistance
|
||||||
EndIf
|
EndIf
|
||||||
|
If covertMMtoLong(inputFootnoteLineDistance) > 0 Then
|
||||||
If CLng(inputFootnoteLineDistance) > 0 Then
|
footnoteLineDistance = covertMMtoLong(inputFootnoteLineDistance)
|
||||||
footnoteLineDistance = CLng(inputFootnoteLineDistance)
|
|
||||||
curStyle.FootnoteLineDistance = footnoteLineDistance
|
curStyle.FootnoteLineDistance = footnoteLineDistance
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputFootnoteLineTextDistance) > 0 Then
|
If covertMMtoLong(inputFootnoteLineTextDistance) > 0 Then
|
||||||
footnoteLineTextDistance = CLng(inputFootnoteLineTextDistance)
|
footnoteLineTextDistance = covertMMtoLong(inputFootnoteLineTextDistance)
|
||||||
curStyle.FootnoteLineTextDistance = footnoteLineTextDistance
|
curStyle.FootnoteLineTextDistance = footnoteLineTextDistance
|
||||||
EndIf
|
EndIf
|
||||||
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
|
||||||
'Mri curStyle
|
If covertMMtoLong(inputFooterHeight) > 0 Then
|
||||||
|
Dim footerHeight As Long
|
||||||
|
footerHeight = covertMMtoLong(inputFooterHeight)
|
||||||
|
curStyle.FooterIsOn = true
|
||||||
|
curStyle.FooterIsDynamicHeight = false
|
||||||
|
curStyle.FooterHeight = footerHeight + curStyle.FooterBodyDistance
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If covertMMtoLong(inputHeaderHeight) > 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 CLng(inputHeight) > 0 Then
|
If covertMMtoLong(inputHeight) > 0 Then
|
||||||
newWidth = CLng(inputHeight + "00")
|
newWidth = covertMMtoLong(inputHeight)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputWidth) > 0 Then
|
If covertMMtoLong(inputWidth) > 0 Then
|
||||||
newHeight = CLng(inputWidth + "00")
|
newHeight = covertMMtoLong(inputWidth)
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
If CLng(inputLeftMargin) > 0 Then
|
If covertMMtoLong(inputLeftMargin) > 0 Then
|
||||||
newTopMargin = CLng(inputLeftMargin + "00")
|
newTopMargin = covertMMtoLong(inputLeftMargin)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputRightMargin) > 0 Then
|
If covertMMtoLong(inputRightMargin) > 0 Then
|
||||||
newBottomMargin = CLng(inputRightMargin + "00")
|
newBottomMargin = covertMMtoLong(inputRightMargin)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputTopMargin) > 0 Then
|
If covertMMtoLong(inputTopMargin) > 0 Then
|
||||||
newLeftMargin = CLng(inputTopMargin + "00")
|
newLeftMargin = covertMMtoLong(inputTopMargin)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputBottomMargin) > 0 Then
|
If covertMMtoLong(inputBottomMargin) > 0 Then
|
||||||
newRightMargin = CLng(inputBottomMargin + "00")
|
newRightMargin = covertMMtoLong(inputBottomMargin)
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
Else
|
Else
|
||||||
If CLng(inputWidth) > 0 Then
|
If covertMMtoLong(inputWidth) > 0 Then
|
||||||
newWidth = CLng(inputWidth + "00")
|
newWidth = covertMMtoLong(inputWidth)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputHeight) > 0 Then
|
If covertMMtoLong(inputHeight) > 0 Then
|
||||||
newHeight = CLng(inputHeight + "00")
|
newHeight = covertMMtoLong(inputHeight)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputTopMargin) > 0 Then
|
If covertMMtoLong(inputTopMargin) > 0 Then
|
||||||
newTopMargin = CLng(inputTopMargin + "00")
|
newTopMargin = covertMMtoLong(inputTopMargin)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputBottomMargin) > 0 Then
|
If covertMMtoLong(inputBottomMargin) > 0 Then
|
||||||
newBottomMargin = CLng(inputBottomMargin + "00")
|
newBottomMargin = covertMMtoLong(inputBottomMargin)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputLeftMargin) > 0 Then
|
If covertMMtoLong(inputLeftMargin) > 0 Then
|
||||||
newLeftMargin = CLng(inputLeftMargin + "00")
|
newLeftMargin = covertMMtoLong(inputLeftMargin)
|
||||||
EndIf
|
EndIf
|
||||||
If CLng(inputRightMargin) > 0 Then
|
If covertMMtoLong(inputRightMargin) > 0 Then
|
||||||
newRightMargin = CLng(inputRightMargin + "00")
|
newRightMargin = covertMMtoLong(inputRightMargin)
|
||||||
EndIf
|
EndIf
|
||||||
End If
|
End If
|
||||||
textFieldWidth = newWidth - newLeftMargin - newRightMargin
|
textFieldWidth = newWidth - newLeftMargin - newRightMargin
|
||||||
|
@ -121,8 +347,35 @@
|
||||||
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) < 1 Then
|
||||||
|
convertMMtoLong = -1
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
dimension = customReplace(dimension, ".", ",")
|
||||||
|
If Not IsNumeric( dimension ) Then
|
||||||
|
convertMMtoLong = -1
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
Dim value As Double
|
||||||
|
value = CDbl(dimension)
|
||||||
|
If value < 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>
|
|
@ -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 markTOC4
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="TOCLinks" script:language="StarBasic" script:moduleType="normal">Sub makeOutlineLinks
|
||||||
End Sub
|
Dim oViewCursor As Object
|
||||||
|
|
||||||
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("OutlineLinksFinished"))
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,26 +18,29 @@ 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) <> -1 AND Ubound(outline) <> -1 Then
|
If Ubound(heading) <> -1 AND Ubound(outline) <> -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 = "Оглавление " + level + "." + (i Mod (Ubound(heading) + 1))
|
oAnchor2Name = "Outline " + level + "." + (i Mod (Ubound(heading) + 1))
|
||||||
If i <= Ubound(heading) Then
|
If i <= Ubound(heading) Then
|
||||||
createAnchor(heading(i Mod (Ubound(heading) + 1)),oAnchor2Name)
|
createAnchor(heading(i Mod (Ubound(heading) + 1)),oAnchor2Name)
|
||||||
EndIf
|
EndIf
|
||||||
createLink(outline(i),"",oAnchor2Name)
|
createLink(outline(i),"",oAnchor2Name)
|
||||||
Next i
|
Next i
|
||||||
Else
|
Else
|
||||||
MsgBox ("Число Оглавлений "+ level +" уровня ("+(Ubound(outline)+1) +") не кратно числу Заголовоков " + level + " уровня (" + (Ubound(heading)+1) + ")"
|
message = getTranslation("TOCErrorContentsNotMatchHeadings1") & " " & level & " (" & (Ubound(outline)+1) &") " & _
|
||||||
|
getTranslation("TOCErrorContentsNotMatchHeadings2") & " " & level & " " & _
|
||||||
|
getTranslation("TOCErrorContentsNotMatchHeadings3") & " (" & (Ubound(heading)+1) & ")"
|
||||||
|
showTOCLinksDialog(message, heading(), outline() )
|
||||||
EndIf
|
EndIf
|
||||||
ElseIf Ubound(outline) = -1 Then
|
ElseIf Ubound(outline) = -1 Then
|
||||||
|
' MsgBox (getTranslation("TOCErrorNoContents1") & " " & level & " " & getTranslation("TOCErrorNoContents2"))
|
||||||
'MsgBox ("Не могу сделать ссылки в оглавлении. Оглавлений "+ level + " уровня не найдено.")
|
|
||||||
ElseIf Ubound(heading) = -1 Then
|
ElseIf Ubound(heading) = -1 Then
|
||||||
MsgBox ("Не могу сделать ссылки в оглавлении. Заголовоков "+ level + " уровня не найдено.")
|
MsgBox getTranslation("TOCErrorNoHeadings1") & " " & level & " " & getTranslation("TOCErrorNoHeadings2")
|
||||||
EndIf
|
EndIf
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
@ -127,12 +130,100 @@ 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("ePublishing")
|
||||||
|
pDialog = CreateUnoDialog( DialogLibraries.ePublishing.toc_links )
|
||||||
|
|
||||||
|
'grid = pDialog.getControl("grid")
|
||||||
|
grid = pDialog.Model.createInstance("com.sun.star.awt.grid.UnoControlGridModel")
|
||||||
|
grid.Name = "tocGrid"
|
||||||
|
grid.ShowColumnHeader = True
|
||||||
|
grid.ShowRowHeader = True
|
||||||
|
grid.VScroll = true
|
||||||
|
grid.Sizeable = true
|
||||||
|
grid.Step = 0
|
||||||
|
|
||||||
|
oColumnModel = createUnoService( "com.sun.star.awt.grid.DefaultGridColumnModel")
|
||||||
|
|
||||||
|
tocColumn = createUnoService( "com.sun.star.awt.grid.GridColumn")
|
||||||
|
tocColumn.Title = getTranslation("tocItemText")
|
||||||
|
tocColumn.ColumnWidth = 100
|
||||||
|
tocColumn.Resizeable = true
|
||||||
|
'tocColumn.Flexibility = true
|
||||||
|
|
||||||
|
oColumnModel.addColumn( tocColumn )
|
||||||
|
|
||||||
|
headingsColumn = createUnoService( "com.sun.star.awt.grid.GridColumn")
|
||||||
|
headingsColumn.Title = getTranslation("headingItemText")
|
||||||
|
headingsColumn.ColumnWidth = 100
|
||||||
|
headingsColumn.Resizeable = true
|
||||||
|
'headingsColumn.Flexibility = true
|
||||||
|
|
||||||
|
oColumnModel.addColumn( headingsColumn )
|
||||||
|
|
||||||
|
grid.ColumnModel = oColumnModel
|
||||||
|
'grid.Sizeable = False
|
||||||
|
'gridStep = 0
|
||||||
|
|
||||||
|
oDataModel = createUnoService( "com.sun.star.awt.grid.DefaultGridDataModel")
|
||||||
|
If Ubound(outline) > 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 > Ubound(outline) Then
|
||||||
|
outlineCell = ""
|
||||||
|
Else
|
||||||
|
outlineCell = outline(i).getString()
|
||||||
|
EndIf
|
||||||
|
oDataModel.addRow ( i+1 , Array(outlineCell, headingCell) )
|
||||||
|
Next i
|
||||||
|
EndIf
|
||||||
|
grid.GridDataModel = oDataModel
|
||||||
|
|
||||||
|
oGridControl = createUnoService("com.sun.star.awt.grid.UnoControlGrid")
|
||||||
|
oGridControl.setModel(grid)
|
||||||
|
pDialog.addControl("gridtab", oGridControl)
|
||||||
|
rect = pDialog.getPosSize()
|
||||||
|
oGridControl.setPosSize(10,60,rect.Width - 20,rect.Height - 120, com.sun.star.awt.PosSize.POSSIZE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pDialog.getControl("Ok").Label = getTranslation("buttonOk")
|
||||||
|
pDialog.getControl("message").SetText(message)
|
||||||
|
pDialog.Title = getTranslation("tocDialogLabel")
|
||||||
|
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
|
||||||
|
|
1727
ePublishing/Translations.xba
Normal file
|
@ -4,4 +4,6 @@
|
||||||
<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>
|
|
@ -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 journalsMark7
|
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="journals" script:language="StarBasic">Private sub journalsMark36
|
||||||
End sub
|
End sub
|
||||||
|
|
||||||
Dim templateName As String
|
Dim templateName As String
|
||||||
|
@ -25,10 +25,11 @@ Private Sub makeUpIssue
|
||||||
Dim tmp As String
|
Dim tmp As String
|
||||||
Dim nSections As Long
|
Dim nSections As Long
|
||||||
|
|
||||||
description = "Вы уверены, что хотите запустить сборку выпуска ?"
|
description = getTranslation("complileJournalIssueConfirmation")
|
||||||
If NOT confirm(description) Then
|
If NOT confirm(description) Then
|
||||||
Exit Sub
|
Exit Sub
|
||||||
EndIf
|
EndIf
|
||||||
|
setZoomToSpeedUpTasks()
|
||||||
|
|
||||||
EIFN = "ЭиФН"
|
EIFN = "ЭиФН"
|
||||||
PHA = "ФА"
|
PHA = "ФА"
|
||||||
|
@ -42,7 +43,7 @@ Private Sub makeUpIssue
|
||||||
|
|
||||||
'Exit if no sections in document or document not saved
|
'Exit if no sections in document or document not saved
|
||||||
If oFilename = "" Then
|
If oFilename = "" Then
|
||||||
MsgBox "Сначала сохраните выпуск в папке с файлами статьей"
|
MsgBox getTranslation("compileJournalIssueNoCurFilename")
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
@ -63,8 +64,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("Сборка выпуска начата, подождите",30)
|
statusIndicator.Start(getTranslation("compileJournalIssueStatusInProgerss"),30)
|
||||||
For i = 1 To 25
|
For i = 1 To 50
|
||||||
'Find section file
|
'Find section file
|
||||||
FilePath = findArticleFile(path,i)
|
FilePath = findArticleFile(path,i)
|
||||||
If FilePath="" Then
|
If FilePath="" Then
|
||||||
|
@ -138,7 +139,7 @@ Private Sub makeUpIssue
|
||||||
'ThisComponent.FootnoteSettings.FootnoteCounting=1
|
'ThisComponent.FootnoteSettings.FootnoteCounting=1
|
||||||
'setHeadingsOutlineLevels
|
'setHeadingsOutlineLevels
|
||||||
statusIndicator.end()
|
statusIndicator.end()
|
||||||
MsgBox "Сборка выпуска завершена."
|
MsgBox getTranslation("compileJournalIssueFinished")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub setPageNumbers()
|
Private Sub setPageNumbers()
|
||||||
|
@ -197,7 +198,7 @@ Private Function lastPageNum(i As Integer)
|
||||||
Exit Do
|
Exit Do
|
||||||
End If
|
End If
|
||||||
If curPageNum = 0 Then
|
If curPageNum = 0 Then
|
||||||
MsgBox "Произошла ошибка при нахождении последней страницы статьи"
|
MsgBox getTranslation("lastPageNumNotFound")
|
||||||
Exit Do
|
Exit Do
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
@ -222,13 +223,13 @@ Private Function getUDK()
|
||||||
getFirstTextInStyle("УДК")
|
getFirstTextInStyle("УДК")
|
||||||
foundUDK = oViewCursor.Text.createTextCursorByRange(oViewCursor).getString()
|
foundUDK = oViewCursor.Text.createTextCursorByRange(oViewCursor).getString()
|
||||||
If foundUDK = "" Then
|
If foundUDK = "" Then
|
||||||
getUDK = "Задать УДК"
|
getUDK = getTranslation("compileJournalIssueSetUDKDummyText")
|
||||||
Else
|
Else
|
||||||
getUDK = foundUDK
|
getUDK = foundUDK
|
||||||
backspace
|
backspace
|
||||||
sendRM
|
sendRM
|
||||||
End If
|
End If
|
||||||
oViewCursor.goToRange(oSavePosition, false)
|
Thiscomponent.CurrentController.select(oSavePosition)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function getCopyright()
|
Private Function getCopyright()
|
||||||
|
@ -262,7 +263,7 @@ Private Function getCopyright()
|
||||||
oViewCursor.goToRange(oSavePosition, false)
|
oViewCursor.goToRange(oSavePosition, false)
|
||||||
Exit Function
|
Exit Function
|
||||||
Else
|
Else
|
||||||
getCopyright = "© " + "Фамилия И.О."
|
getCopyright = getTranslation("compileJournalIssueCopyrightDummyText")
|
||||||
EndIf
|
EndIf
|
||||||
End If
|
End If
|
||||||
oViewCursor.goToRange(oSavePosition, false)
|
oViewCursor.goToRange(oSavePosition, false)
|
||||||
|
@ -279,7 +280,7 @@ Private Function getAuthor()
|
||||||
If authors <> "" Then
|
If authors <> "" Then
|
||||||
getAuthor = authors
|
getAuthor = authors
|
||||||
Else
|
Else
|
||||||
getAuthor = "Фамилия И.О."
|
getAuthor = getTranslation("compileJournalIssueAuthorDummyText")
|
||||||
End If
|
End If
|
||||||
oViewCursor.goToRange(oSavePosition, false)
|
oViewCursor.goToRange(oSavePosition, false)
|
||||||
End Function
|
End Function
|
||||||
|
@ -295,7 +296,7 @@ Private Function getArticleHeader()
|
||||||
If articleHeader <> "" Then
|
If articleHeader <> "" Then
|
||||||
getArticleHeader = articleHeader
|
getArticleHeader = articleHeader
|
||||||
Else
|
Else
|
||||||
getArticleHeader = "Название статьи"
|
getArticleHeader = getTranslation("compileJournalIssueArticleTitleDummyText")
|
||||||
End If
|
End If
|
||||||
oViewCursor.goToRange(oSavePosition, false)
|
oViewCursor.goToRange(oSavePosition, false)
|
||||||
End Function
|
End Function
|
||||||
|
@ -306,7 +307,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 = "" Then
|
If section = "" Then
|
||||||
section = "Задайте название радела!"
|
section = getTranslation("compileJournalIssueSectionDummyText")
|
||||||
End If
|
End If
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
startPage = oViewcursor.getPage()
|
startPage = oViewcursor.getPage()
|
||||||
|
@ -448,7 +449,7 @@ Private Sub setDefaultFirstPageMetadata(curStyle As Object,i As Integer)
|
||||||
insertUserField(oViewCursor,"article" + i + "LastPage","00" )
|
insertUserField(oViewCursor,"article" + i + "LastPage","00" )
|
||||||
'Footer without table
|
'Footer without table
|
||||||
oViewCursor.goToRange(curStyle.FooterText.End, false)
|
oViewCursor.goToRange(curStyle.FooterText.End, false)
|
||||||
insertUserField(oViewCursor,"author" + i + "Copyright","© Фамилия И.О. " + i )
|
insertUserField(oViewCursor,"author" + i + "Copyright",getTranslation("compileJournalIssueCopyrightDummyText") & i )
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -479,7 +480,7 @@ Private Sub setPHAFirstPageMetadata(curStyle As Object,i As Integer)
|
||||||
insertUserField(oViewCursor,"article" + i + "LastPage","00" )
|
insertUserField(oViewCursor,"article" + i + "LastPage","00" )
|
||||||
|
|
||||||
oViewCursor.goToRange(curStyle.FooterText.End, false)
|
oViewCursor.goToRange(curStyle.FooterText.End, false)
|
||||||
insertUserField(oViewCursor,"author" + i + "Copyright","© Фамилия И.О. " + i )
|
insertUserField(oViewCursor,"author" & i & "Copyright",getTranslation("compileJournalIssueCopyrightDummyText") & i )
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -499,10 +500,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,"article" + i + "LastPage","00" )
|
insertUserField(oViewCursor,"article" & i & "LastPage","00" )
|
||||||
oViewCursor.goright(1,false)
|
oViewCursor.goright(1,false)
|
||||||
'Добавить УДК
|
'Добавить УДК
|
||||||
insertUserField(oViewCursor,"article" + i + "UDK","УДК "+ i + "." + i)
|
insertUserField(oViewCursor,"article" & i & "UDK","УДК "+ i + "." + i)
|
||||||
|
|
||||||
'rightHeaderCell
|
'rightHeaderCell
|
||||||
rightHeaderCell = oHeaderTable.getCellByPosition(1,0).getStart()
|
rightHeaderCell = oHeaderTable.getCellByPosition(1,0).getStart()
|
||||||
|
@ -511,22 +512,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,"article" + i + "LastPage","00" )
|
insertUserField(oViewCursor,"article" & i & "LastPage","00" )
|
||||||
' go to page number 2nd place
|
' go to page number 2nd place
|
||||||
oViewCursor.goright(1,false)
|
oViewCursor.goright(1,false)
|
||||||
oViewCursor.gotoEndOfLine(false)
|
oViewCursor.gotoEndOfLine(false)
|
||||||
|
|
||||||
insertUserField(oViewCursor,"article" + i + "Num","" + i )
|
insertUserField(oViewCursor,"article" & i * "Num","" & 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,"author" + i + "Copyright","© Фамилия И.О. " + i )
|
insertUserField(oViewCursor,"author" & i & "Copyright",getTranslation("compileJournalIssueCopyrightDummyText") & i )
|
||||||
'TODO!!!!SECOND PAGE
|
'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,"author" + i + "Copyright","© Фамилия И.О. " + i )
|
insertUserField(oViewCursor,"author" & i & "Copyright",getTranslation("compileJournalIssueCopyrightDummyText") & i )
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
@ -545,7 +546,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("PageStyles")
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
page = findFirstPageNumberWithStyle("Статья " + i + " стр.1")
|
page = findFirstPageNumberWithStyle("Статья " & i & " стр.1")
|
||||||
oViewCursor.jumpToPage(page)
|
oViewCursor.jumpToPage(page)
|
||||||
articleStartPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
articleStartPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
|
||||||
|
@ -573,11 +574,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 = "" Then
|
If templateName = "" Then
|
||||||
insertUserField(oViewCursor,"rightHeader" + i ,"Фамилия И.О. Название статьи" + i )
|
insertUserField(oViewCursor,"rightHeader" & i ,getTranslation("compileJournalIssueAuthorDummyText") & " " & getTranslation("compileJournalIssueArticleTitleDummyText") & i )
|
||||||
ElseIf templateName = PHA Then
|
ElseIf templateName = PHA Then
|
||||||
insertUserField(oViewCursor,"rightHeader" + i ,"Фамилия И.О. Название статьи" + i )
|
insertUserField(oViewCursor,"rightHeader" & i ,getTranslation("compileJournalIssueAuthorDummyText") & " " & getTranslation("compileJournalIssueArticleTitleDummyText") & i )
|
||||||
ElseIf templateName = EIFN Then
|
ElseIf templateName = EIFN Then
|
||||||
insertUserField(oViewCursor,"rightHeader" + i ,"Название статьи " + i )
|
insertUserField(oViewCursor,"rightHeader" & i ,getTranslation("compileJournalIssueArticleTitleDummyText") & " " + i )
|
||||||
rightHeaderCell = rightHeaderTable.getCellByPosition(2,0).getStart()
|
rightHeaderCell = rightHeaderTable.getCellByPosition(2,0).getStart()
|
||||||
oViewCursor.goToRange(rightHeaderCell, false)
|
oViewCursor.goToRange(rightHeaderCell, false)
|
||||||
insertLinkedImage(CStr(i),"headerImageRight")
|
insertLinkedImage(CStr(i),"headerImageRight")
|
||||||
|
@ -588,15 +589,15 @@ Private Sub setAritclePageHeaders(i)
|
||||||
If templateName = "" Then
|
If templateName = "" Then
|
||||||
leftHeaderCell = leftHeaderTable.getCellByPosition(1,0).getStart()
|
leftHeaderCell = leftHeaderTable.getCellByPosition(1,0).getStart()
|
||||||
oViewCursor.goToRange(leftHeaderCell, false)
|
oViewCursor.goToRange(leftHeaderCell, false)
|
||||||
insertUserField(oViewCursor,"leftHeader" + i ,"Название раздела" + i )
|
insertUserField(oViewCursor,"leftHeader" & i ,getTranslation("compileJournalIssueSectionDummyText") & 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,"leftHeader" + i ,"Название раздела" + i )
|
insertUserField(oViewCursor,"leftHeader" & i ,getTranslation("compileJournalIssueSectionDummyText") & 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,"leftHeader" + i ,"И.О. Фамилия" + i )
|
insertUserField(oViewCursor,"leftHeader" & i ,getTranslation("compileJournalIssueInitialsAuthorDummyText") & i )
|
||||||
leftHeaderCell = leftHeaderTable.getCellByPosition(0,0).getStart()
|
leftHeaderCell = leftHeaderTable.getCellByPosition(0,0).getStart()
|
||||||
oViewCursor.goToRange(leftHeaderCell, false)
|
oViewCursor.goToRange(leftHeaderCell, false)
|
||||||
insertLinkedImage(CStr(i),"headerImageLeft")
|
insertLinkedImage(CStr(i),"headerImageLeft")
|
||||||
|
@ -628,6 +629,7 @@ 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("PageStyles")
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
'Constants
|
'Constants
|
||||||
|
@ -652,8 +654,8 @@ Private Sub setArticleUniqPageStyles(i)
|
||||||
curPageStyle.FollowStyle = pageName
|
curPageStyle.FollowStyle = pageName
|
||||||
previousPageStyle = curPageStyle
|
previousPageStyle = curPageStyle
|
||||||
ElseIf oViewCursor.getPage() <> curPageNum Then
|
ElseIf oViewCursor.getPage() <> curPageNum Then
|
||||||
'Прили в конец.
|
'Пришли в конец.
|
||||||
MsgBox "Статья закончилась!"
|
'MsgBox "Статья закончилась!"
|
||||||
Exit Sub
|
Exit Sub
|
||||||
Else
|
Else
|
||||||
Exit Sub
|
Exit Sub
|
||||||
|
@ -661,7 +663,11 @@ Private Sub setArticleUniqPageStyles(i)
|
||||||
'Iterate article page number
|
'Iterate article page number
|
||||||
articlePageNum = articlePageNum + 1
|
articlePageNum = articlePageNum + 1
|
||||||
'GO TO NEXT PAGE
|
'GO TO NEXT PAGE
|
||||||
oViewCursor.jumpToNextPage()
|
If Not oViewCursor.jumpToNextPage() Then
|
||||||
|
MsgBox "setArticleUniqPageStyles failed"
|
||||||
|
End
|
||||||
|
|
||||||
|
EndIf
|
||||||
curPageStyleName = getNextPageStyleName()
|
curPageStyleName = getNextPageStyleName()
|
||||||
Loop
|
Loop
|
||||||
|
|
||||||
|
@ -1029,7 +1035,7 @@ Private Sub updateLastPageFields
|
||||||
articleNamePostfix = " "
|
articleNamePostfix = " "
|
||||||
Dim statusIndicator as Object
|
Dim statusIndicator as Object
|
||||||
statusIndicator = ThisComponent.getCurrentController.statusIndicator
|
statusIndicator = ThisComponent.getCurrentController.statusIndicator
|
||||||
statusIndicator.Start("Производится обновление полей последних номеров страниц, подождите",30)
|
statusIndicator.Start(getTranslation("compileJournalIssueStatusUpdateLastPageNumbers"),30)
|
||||||
enum1 = ThisComponent.Text.createEnumeration
|
enum1 = ThisComponent.Text.createEnumeration
|
||||||
While enum1.hasMoreElements
|
While enum1.hasMoreElements
|
||||||
enum1Element = enum1.nextElement
|
enum1Element = enum1.nextElement
|
||||||
|
@ -1130,248 +1136,278 @@ sub backspace
|
||||||
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
|
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
|
||||||
end Sub
|
end Sub
|
||||||
Sub shrinkPageContent
|
|
||||||
Dim oViewCursor As Object 'View cursor
|
Sub configureCursorPositionForContentShrink()
|
||||||
Dim oTextCursor As Object 'Text cursor
|
' Globalscope.BasicLibraries.LoadLibrary("MRILib")
|
||||||
Dim oViewCurInitPosition As Object
|
Dim oViewCursor As Object
|
||||||
Dim oSaveEndSelection 'Text cursor
|
Dim oTextCursor As Object
|
||||||
Dim oEnum 'Cursor enumeration
|
Dim curSelection As Object
|
||||||
Dim oPar 'Current paragraph
|
Dim selectionTextRange As Object
|
||||||
Dim sTextContent$ 'Service name for text content.
|
Dim nextChar As String
|
||||||
Dim scaleWidthShrinkValue As Integer
|
Dim prefChar As String
|
||||||
Dim scaleCharHeight As Integer
|
|
||||||
Dim scaleIntervalHeight As Integer
|
|
||||||
Dim kernShrinkValue As Integer
|
|
||||||
Dim startOfPara As Boolean
|
|
||||||
'saveCurrentVersion
|
|
||||||
kernShrinkValue = 8
|
|
||||||
scaleWidthShrinkValue = 7
|
|
||||||
scaleCharHeight = 2
|
|
||||||
scaleIntervalHeight = 3
|
|
||||||
sTextContent = "com.sun.star.text.TextContent"
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
oViewCurInitPosition = oViewcursor.Text.createTextCursorByRange(oViewCursor)
|
fixViewCursor()
|
||||||
'Check if we are at start of paragraph go to the end of previous paragraph
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isStartOfParagraph() Then
|
'At start of Para
|
||||||
oViewCursor.goLeft(1,false)
|
oTextCursor.collapseToEnd()
|
||||||
If Len(oViewCursor.String) <> 1 Then
|
If oTextCursor.isStartOfParagraph() AND NOT oTextCursor.isEndOfParagraph() Then
|
||||||
oViewCursor.goRight(1,false)
|
oTextCursor.goLeft(1,false)
|
||||||
EndIf
|
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("com.sun.star.text.TextRanges") Then
|
||||||
|
selectionTextRange = curSelection.Anchor
|
||||||
|
oViewCursor.JumpToFirstPage(false)
|
||||||
|
oViewCursor.goToRange(selectionTextRange,false)
|
||||||
EndIf
|
EndIf
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
'Move right to select left and right characters and save position to the right
|
Function isContentPageChanged(initPosition As Object,initPageNum As String) As Boolean
|
||||||
oViewCursor.goRight(1,false)
|
Dim oViewCursor As Object
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
Dim oTextCursor As Object
|
||||||
'Select last 2 characters
|
isShrinkPageSucceded = false
|
||||||
oViewCursor.goLeft(2,true)
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
If Len(oViewCursor.String) = 2 Then
|
oViewCursor.goToRange(initPosition,false)
|
||||||
oLastChars = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
If (oViewCursor.getPage <> initPageNum) Then
|
||||||
'Insert hyphen if needed
|
isContentPageChanged = true
|
||||||
insertHyphen(oLastChars,oViewCursor)
|
|
||||||
EndIf
|
EndIf
|
||||||
'Return to initial position
|
End Function
|
||||||
oViewCursor.gotoRange(oSaveEndSelection,false) 'Go to end of text to check page changes
|
|
||||||
oViewCursor.goLeft(1,false)
|
|
||||||
'Set saved position to initial state
|
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
|
|
||||||
|
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
|
||||||
|
'oTextCursor.goRight(1,false)
|
||||||
|
'oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
'oViewCursor.BreakType = com.sun.star.style.BreakType.PAGE_BEFORE
|
||||||
|
'oTextCursor.goLeft(1,false)
|
||||||
|
'oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
breakParaAtCursor = oViewcursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
oViewCursor.jumpToPreviousPage()
|
sub insertPara
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 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
|
||||||
|
'In endntote footnote or table shrink is not possible
|
||||||
|
If oViewCursor.Text.supportsService("com.sun.star.text.Endnote") OR _
|
||||||
|
oViewCursor.Text.supportsService("com.sun.star.text.Footnote") OR _
|
||||||
|
oViewCursor.Text.supportsService("com.sun.star.text.CellProperties") Then
|
||||||
|
canShrinkContent = false
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
initPageNum = oViewcursor.getPage()
|
||||||
|
oViewCursor.JumpToPreviousPage(false)
|
||||||
oViewCursor.jumpToStartOfPage()
|
oViewCursor.jumpToStartOfPage()
|
||||||
|
startPageNum = oViewcursor.getPage()
|
||||||
|
'No previous page exists
|
||||||
|
If startPageNum = initPageNum Then
|
||||||
|
oViewCursor.goToRange(oSavePosition,false)
|
||||||
|
canShrinkContent = false
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
'If current paragraph has page break before
|
||||||
|
If oSavePosition.BreakType <> 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)
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
'If one of textRanges is Footnote or Endnote we can't select them so it is better to exit now
|
Do While oViewcursor.getPage() = initPageNum
|
||||||
If oTextCursor.Text.supportsService("com.sun.star.text.Endnote") OR oTextCursor.Text.supportsService("com.sun.star.text.Footnote") Or oTextCursor.Text.supportsService("com.sun.star.text.CellProperties") Then
|
oTextCursor.gotoPreviousParagraph(false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
If oTextCursor.BreakType <> 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 targetContent() As Object
|
||||||
|
Dim delta As Double
|
||||||
|
Dim rounds As Integer
|
||||||
|
delta = 0.1
|
||||||
|
rounds = 3
|
||||||
|
Dim roundsLineHeight As Integer
|
||||||
|
roundsLineHeight = 3
|
||||||
|
Dim i As Integer
|
||||||
|
Dim j As Integer
|
||||||
shrinkPageContent = false
|
shrinkPageContent = false
|
||||||
oViewCursor.gotoRange(oViewCurInitPosition,false)
|
|
||||||
Exit Sub
|
|
||||||
EndIf
|
|
||||||
If oSaveEndSelection.Text.supportsService("com.sun.star.text.Endnote") OR oSaveEndSelection.Text.supportsService("com.sun.star.text.Footnote") Or oTextCursor.Text.supportsService("com.sun.star.text.CellProperties") Then
|
|
||||||
shrinkPageContent = false
|
|
||||||
oViewCursor.gotoRange(oViewCurInitPosition,false)
|
|
||||||
Exit Sub
|
|
||||||
EndIf
|
|
||||||
oTextCursor.gotoRange(oSaveEndSelection,true)
|
|
||||||
oViewCursor.gotoRange(oSaveEndSelection,false) 'Go to end of text to check page changes
|
|
||||||
|
|
||||||
If shrinkIntervalHeight(oTextCursor,oViewCursor,scaleIntervalHeight) Then
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
If oTextCursor.isEndOfParagraph() Then
|
|
||||||
pos1 = oViewCursor.getPage()
|
|
||||||
oViewCursor.goRight(1,false)
|
|
||||||
pos2 = oViewCursor.getPage()
|
|
||||||
'If we moved right to the next para and page haven'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
|
|
||||||
If shrinkCharHeight(oTextCursor,oViewCursor,scaleCharHeight) Then
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
If oTextCursor.isEndOfParagraph() Then
|
|
||||||
pos1 = oViewCursor.getPage()
|
|
||||||
oViewCursor.goRight(1,false)
|
|
||||||
pos2 = oViewCursor.getPage()
|
|
||||||
'If we moved right to the next para and page haven'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
|
|
||||||
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()
|
|
||||||
'If we moved right to the next para and page haven'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
|
|
||||||
|
|
||||||
Sub splitPages
|
|
||||||
Dim oViewCursor As Object 'View cursor
|
|
||||||
Dim oText 'Text object in current document
|
|
||||||
Dim oSaveEndSelection 'Text cursor
|
|
||||||
'saveCurrentVersion
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
Dim saveFirstLineIndent As Boolean
|
|
||||||
|
|
||||||
'Check if we are at start of paragraph go to the end of previous paragraph
|
configureCursorPositionForContentShrink()
|
||||||
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isEndOfParagraph() Then
|
If Not canShrinkContent() Then
|
||||||
oViewCursor.goRight(1,false)
|
Exit Function
|
||||||
EndIf
|
EndIf
|
||||||
If oViewCursor.Text.createTextCursorByRange(oViewCursor).isStartOfParagraph() Then
|
initPageNum = oViewcursor.getPage()
|
||||||
saveFirstLineIndent = true
|
initPosition = breakParaAtCursor()
|
||||||
Else
|
oViewcursor.goToRange(initPosition,false)
|
||||||
saveFirstLineIndent = false
|
oViewCursor.JumpToPreviousPage(false)
|
||||||
|
oViewCursor.jumpToStartOfPage()
|
||||||
|
startPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
targetContent = selectContentToShrink(initPosition,startPosition)
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
shrinkContentSpacing(targetContent(i))
|
||||||
|
If isContentPageChanged(initPosition, initPageNum) Then
|
||||||
|
Exit Function
|
||||||
EndIf
|
EndIf
|
||||||
|
Next i
|
||||||
|
'TODO: Уменьшая отступы каждого параграфа от и до следующего
|
||||||
|
' а также уменьшая кернинг, межстрочное расстояние и кегль
|
||||||
|
For j = 0 To rounds
|
||||||
|
For i = LBound(targetContent) To Ubound(targetContent)
|
||||||
|
If (j > 0) Then
|
||||||
|
decreaseContentCharHeight(targetContent(i), delta)
|
||||||
|
EndIf
|
||||||
|
If shrinkContentWithKerning(targetContent(i)) Then
|
||||||
|
balanceContentTail(targetContent(i),false)
|
||||||
|
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
|
||||||
|
|
||||||
oViewCursor.goRight(1,false)
|
End Function
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
|
||||||
'Select last 2 characters
|
|
||||||
oViewCursor.goLeft(2,true)
|
|
||||||
|
|
||||||
If Len(oViewCursor.String) = 2 Then
|
Function increaseIntervalHeight(oContent As Object) As Boolean
|
||||||
'Insert hyphen if needed
|
increaseIntervalHeight = false
|
||||||
oLastChars = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
Dim oParEnum As Object
|
||||||
insertHyphen(oLastChars,oViewCursor)
|
Dim oPar As Object
|
||||||
End If
|
Dim oSecEnum As Object
|
||||||
'Return to initial position
|
Dim oParSection As Object
|
||||||
oViewCursor.gotoRange(oSaveEndSelection,false) 'Go to end of text to check page changes
|
Dim pageNum As Integer
|
||||||
oViewCursor.goLeft(1,false)
|
Dim lineSpacing As Object
|
||||||
insertPageBreak
|
If Not IsMissing(oContent.ParaLineSpacing) Then
|
||||||
If Not saveFirstLineIndent Then
|
lineSpacing = oContent.ParaLineSpacing
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
If lineSpacing.Mode = 3 Then
|
||||||
If Not IsNull(oTextCursor.ParaFirstLineIndent) Then
|
lineSpacing.Height = lineSpacing.Height / 0.98
|
||||||
oTextCursor.ParaFirstLineIndent = 0
|
oContent.ParaLineSpacing = lineSpacing
|
||||||
|
increaseIntervalHeight = true
|
||||||
End If
|
End If
|
||||||
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
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub decreaseContentCharHeight(oContent As Object, delta As double)
|
||||||
|
Dim contentEnum As Object'paragraph enumeration
|
||||||
|
Dim textContentElement As Object'current paragraph
|
||||||
|
Dim curHeight As Double
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
contentEnum = oContent.createEnumeration()
|
||||||
|
Do While contentEnum.hasMoreElements()
|
||||||
|
textContentElement = contentEnum.nextElement()
|
||||||
|
oTextCursor = textContentElement.Text.createTextCursorByRange(textContentElement)
|
||||||
|
curHeight = oTextCursor.charHeight
|
||||||
|
oTextCursor.charHeight = roundHeight(curHeight) - delta
|
||||||
|
Loop
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Sub increaseContentCharHeight(oContent As Object, delta As double)
|
||||||
|
Dim contentEnum As Object'paragraph enumeration
|
||||||
|
Dim textContentElement As Object'current paragraph
|
||||||
|
Dim curHeight As Double
|
||||||
Function shrinkScaleWidth(oTextCursor,oViewCursor,iterations) As Boolean
|
Dim oTextCursor As Object
|
||||||
Dim oParEnum 'paragraph enumeration
|
contentEnum = oContent.createEnumeration()
|
||||||
Dim oPar 'current paragraph
|
Do While contentEnum.hasMoreElements()
|
||||||
Dim oSecEnum 'sections enumeration
|
textContentElement = contentEnum.nextElement()
|
||||||
Dim oParSection 'paragraph text section
|
oTextCursor = textContentElement.Text.createTextCursorByRange(textContentElement)
|
||||||
Dim pageNum As Integer
|
curHeight = oTextCursor.charHeight
|
||||||
pageNum = oViewCursor.getPage()
|
oTextCursor.charHeight = roundHeight(curHeight) + delta
|
||||||
For i = 1 To iterations Step 1
|
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
|
||||||
Do While oParEnum.hasMoreElements()
|
|
||||||
oPar = oParEnum.nextElement()
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
oPar.charScaleWidth = 100 - i
|
|
||||||
If pageNum <> oViewCursor.getPage() Then
|
|
||||||
shrinkScaleWidth = true
|
|
||||||
Exit Function
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Loop
|
Loop
|
||||||
Next i
|
End Sub
|
||||||
shrinkScaleWidth = false
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Function shrinkKern(oTextCursor,oViewCursor,iterations) As Boolean
|
Function roundHeight(nHeight) As Double
|
||||||
Dim oParEnum 'paragraph enumeration
|
|
||||||
Dim oPar 'current paragraph
|
|
||||||
Dim oSecEnum 'sections enumeration
|
|
||||||
Dim oParSection '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("com.sun.star.text.Paragraph") Then
|
|
||||||
oPar.CharKerning = 0 - i
|
|
||||||
If pageNum <> 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 'paragraph enumeration
|
|
||||||
Dim oPar 'current paragraph
|
|
||||||
Dim oSecEnum 'sections enumeration
|
|
||||||
Dim oParSection '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("com.sun.star.text.Paragraph") Then
|
|
||||||
oPar.charHeight = roundHeight(oPar.charHeight) - 0.1
|
|
||||||
If pageNum <> 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)
|
||||||
|
@ -1387,127 +1423,74 @@ Function roundHeight(nHeight)
|
||||||
roundHeight=lHeight
|
roundHeight=lHeight
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Function shrinkContentSpacing(oContent As Object) As Boolean
|
||||||
Function shrinkIntervalHeight(oTextCursor,oViewCursor,iterations) As Boolean
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
Dim oParEnum 'paragraph enumeration
|
shrinkContentSpacing = false
|
||||||
Dim oPar 'current paragraph
|
If oContent.ParaTopMargin > MIN_SPACING_TO_SHRINK Then
|
||||||
Dim oSecEnum 'sections enumeration
|
oContent.ParaTopMargin = 0
|
||||||
Dim oParSection 'paragraph text section
|
|
||||||
Dim pageNum As Integer
|
|
||||||
Dim lineSpacing
|
|
||||||
pageNum = oViewCursor.getPage()
|
|
||||||
For i = 1 To iterations Step 1
|
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
|
||||||
Do While oParEnum.hasMoreElements()
|
|
||||||
oPar = oParEnum.nextElement()
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
lineSpacing = oPar.ParaLineSpacing
|
|
||||||
If lineSpacing.Mode = 3 Then
|
|
||||||
lineSpacing.Height = lineSpacing.Height * 0.98
|
|
||||||
oPar.ParaLineSpacing = lineSpacing
|
|
||||||
EndIf
|
EndIf
|
||||||
If pageNum <> oViewCursor.getPage() Then
|
If oContent.ParaBottomMargin > MIN_SPACING_TO_SHRINK Then
|
||||||
shrinkIntervalHeight = true
|
oContent.ParaTopMargin = 0
|
||||||
Exit Function
|
|
||||||
EndIf
|
EndIf
|
||||||
End If
|
|
||||||
Loop
|
|
||||||
Next i
|
|
||||||
shrinkIntervalHeight = false
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Sub savecursor
|
Function selectContentToShrink(initPosition As Object, startPosition As Object)
|
||||||
Dim oViewCursor As Object 'View cursor
|
Dim oViewCursor As Object
|
||||||
Dim oTextCursor 'Text cursor
|
Dim oTextCursor As Object
|
||||||
Dim oSaveEndSelection 'Text cursor
|
Dim startPageNum As Long
|
||||||
Dim oEnum 'Cursor enumeration
|
Dim prevPageNum As Long
|
||||||
Dim oText 'Text object in current document
|
Dim savePosition As Object
|
||||||
Dim oPar 'Current paragraph
|
Dim foundPrevPara As Boolean
|
||||||
Dim sTextContent$ 'Service name for text content.
|
Dim targetContent() As Variant
|
||||||
sTextContent = "com.sun.star.text.TextContent"
|
|
||||||
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
oSaveEndSelection = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oViewcursor.goToRange(startPosition,false)
|
||||||
REM oViewCursor.getText.insertString(oViewCursor.getStart(), CHR$(257), False)
|
prevPageNum = oViewcursor.getPage()
|
||||||
'If Not oViewCursor.jumpToPreviousPage() Then Exit Sub
|
oViewcursor.goToRange(initPosition,false)
|
||||||
oViewCursor.jumpToPreviousPage()
|
startPageNum = oViewcursor.getPage()
|
||||||
oViewCursor.jumpToStartOfPage()
|
|
||||||
|
|
||||||
'oViewCursor.goUp(10,true)
|
|
||||||
'oViewCursor.getPage()
|
|
||||||
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
'oTextCursor.gotoStart(false)
|
Do While startPageNum = oViewcursor.getPage() OR prevPageNum = oViewcursor.getPage()
|
||||||
oTextCursor.gotoRange(oSaveEndSelection,true)
|
savePosition = oTextCursor.getStart()
|
||||||
|
oTextCursor.gotoStartOfParagraph(true)
|
||||||
oParEnum = oTextCursor.createEnumeration()
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
oViewCursor.collapseToStart()
|
||||||
Do While oParEnum.hasMoreElements()
|
If Len(oTextCursor.String) > 0 Then
|
||||||
Dim oSubSection
|
If (startPageNum = oViewcursor.getPage() OR prevPageNum = oViewcursor.getPage()) Then
|
||||||
Dim oSecEnum
|
AddToArray(targetContent,oTextCursor.Text.createTextCursorByRange(oTextCursor))
|
||||||
|
Else
|
||||||
Do While oParEnum.hasMoreElements()
|
oTextCursor.goToRange(savePosition,false)
|
||||||
oPar = oParEnum.nextElement()
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
oPar.charScaleWidth = oPar.charScaleWidth - 1
|
oViewCursor.JumpToStartOfPage(false)
|
||||||
Dim charHeight
|
oTextCursor.goToRange(oViewCursor,true)
|
||||||
charHeight= oPar.charHeight
|
AddToArray(targetContent,oTextCursor.Text.createTextCursorByRange(oTextCursor))
|
||||||
Dim lineSpacing
|
|
||||||
lineSpacing = oPar.ParaLineSpacing
|
|
||||||
MsgBox lineSpacing.Mode & lineSpacing.Height
|
|
||||||
If oPar.supportsService("com.sun.star.text.Paragraph") Then
|
|
||||||
nPars = nPars + 1
|
|
||||||
oSecEnum = oPar.createEnumeration()
|
|
||||||
s = s & nPars & ":"
|
|
||||||
Do While oSecEnum.hasMoreElements()
|
|
||||||
oParSection = oSecEnum.nextElement()
|
|
||||||
oParSection.charScaleWidth = oParSection.charScaleWidth - 1
|
|
||||||
oParSection.CharHeight = oParSection.CharHeight * 0.99
|
|
||||||
s = s & oParSection.TextPortionType & " Scale " & oParSection.CharScaleWidth & " Scale " & oParSection.CharHeight & ":"
|
|
||||||
Loop
|
|
||||||
s = s & CHR$(10)
|
|
||||||
If nPars MOD 10 = 0 Then
|
|
||||||
MsgBox s, 0, "Paragraph Text Sections"
|
|
||||||
s = ""
|
|
||||||
EndIf
|
EndIf
|
||||||
EndIf
|
EndIf
|
||||||
|
foundPrevPara = oTextCursor.gotoPreviousParagraph(false)
|
||||||
|
If (foundPrevPara = false) Then
|
||||||
|
Exit Do
|
||||||
|
EndIf
|
||||||
|
oTextCursor.gotoEndOfParagraph(false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
Loop
|
Loop
|
||||||
Loop
|
selectContentToShrink = targetContent
|
||||||
End Sub
|
End Function
|
||||||
|
|
||||||
|
Sub insertPageBreak
|
||||||
|
|
||||||
sub insertPageBreak
|
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
rem define variables
|
|
||||||
dim document as object
|
dim document as object
|
||||||
dim dispatcher as object
|
dim dispatcher as object
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
rem get access to the document
|
|
||||||
document = ThisComponent.CurrentController.Frame
|
document = ThisComponent.CurrentController.Frame
|
||||||
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
|
dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
|
||||||
|
|
||||||
|
|
||||||
end sub
|
|
||||||
|
|
||||||
Sub insertHyphen(oTextCursor,oViewCursor)
|
|
||||||
Dim lastChars
|
|
||||||
'lastChars = oTextCursor.getString()
|
|
||||||
replacementhyp
|
|
||||||
'MsgBox lastChars
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
sub replacementhyp
|
Sub insertHyphen(twoCharactersToHyphen As Object)
|
||||||
rem ----------------------------------------------------------------------
|
Dim oViewCursor As Object
|
||||||
rem define variables
|
Dim document as Object
|
||||||
dim document as object
|
Dim dispatcher as Object
|
||||||
dim dispatcher as object
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
rem ----------------------------------------------------------------------
|
oViewCursor.goToRange(twoCharactersToHyphen,false)
|
||||||
rem get access to the document
|
|
||||||
document = ThisComponent.CurrentController.Frame
|
document = ThisComponent.CurrentController.Frame
|
||||||
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
|
||||||
rem ----------------------------------------------------------------------
|
|
||||||
dim args1(21) as new com.sun.star.beans.PropertyValue
|
dim args1(21) as new com.sun.star.beans.PropertyValue
|
||||||
args1(0).Name = "SearchItem.StyleFamily"
|
args1(0).Name = "SearchItem.StyleFamily"
|
||||||
args1(0).Value = 2
|
args1(0).Value = 2
|
||||||
|
@ -1534,6 +1517,7 @@ sub replacementhyp
|
||||||
args1(11).Name = "SearchItem.SearchString"
|
args1(11).Name = "SearchItem.SearchString"
|
||||||
args1(11).Value = "([a-zA-Zа-яА-Я])([a-zA-Zа-яА-Я])"
|
args1(11).Value = "([a-zA-Zа-яА-Я])([a-zA-Zа-яА-Я])"
|
||||||
args1(12).Name = "SearchItem.ReplaceString"
|
args1(12).Name = "SearchItem.ReplaceString"
|
||||||
|
' "$1 U+00AD $2"
|
||||||
args1(12).Value = "$1$2"
|
args1(12).Value = "$1$2"
|
||||||
args1(13).Name = "SearchItem.Locale"
|
args1(13).Name = "SearchItem.Locale"
|
||||||
args1(13).Value = 255
|
args1(13).Value = 255
|
||||||
|
@ -1571,7 +1555,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 = "VersionComment"
|
args1(0).Name = "VersionComment"
|
||||||
args1(0).Value = "Вставка разрыва страниц"
|
args1(0).Value = getTranslation("saveVersionCommentInsertPageBreak")
|
||||||
|
|
||||||
dispatcher.executeDispatch(document, ".uno:Save", "", 0, args1())
|
dispatcher.executeDispatch(document, ".uno:Save", "", 0, args1())
|
||||||
|
|
||||||
|
@ -1614,6 +1598,8 @@ 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
|
||||||
|
|
|
@ -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="182" 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="236" 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="181" dlg:height="306">
|
<dlg:menulist dlg:id="ListBox1" dlg:tab-index="0" dlg:left="0" dlg:top="3" dlg:width="234" dlg:height="306">
|
||||||
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ePublishing.Archive.onSelectMenuItem?language=Basic&location=application" script:language="Script"/>
|
<script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ePublishing.Archive.onSelectMenuItem?language=Basic&location=application" script:language="Script"/>
|
||||||
</dlg:menulist>
|
</dlg:menulist>
|
||||||
</dlg:bulletinboard>
|
</dlg:bulletinboard>
|
||||||
|
|
|
@ -10,4 +10,6 @@
|
||||||
<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>
|
8
ePublishing/toc_links.xdl
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?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>
|
|
@ -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.2.7" />
|
<version value="0.7.16" />
|
||||||
<update-download>
|
<update-download>
|
||||||
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/uploads/facf3ca1bee098ce0d08348528411bc9/ePublishing.oxt" />
|
<src xlink:href="https://dev.litvinovg.pro/litvinovg/epublishing/uploads/9e6d9eaeb144d7a67e94c8460492a040/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" />
|
||||||
|
|
Before Width: | Height: | Size: 8.5 KiB |
263
icons/addon_icon.svg
Normal file
|
@ -0,0 +1,263 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 3.6 KiB |
97
icons/decChar.svg
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 7 KiB |
90
icons/decKern.svg
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 7.2 KiB |
153
icons/endnotes.svg
Normal file
|
@ -0,0 +1,153 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 4 KiB |
90
icons/incChar.svg
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 7.2 KiB |
90
icons/incKern.svg
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 7.2 KiB |
BIN
icons/links.png
Before Width: | Height: | Size: 3.7 KiB |
97
icons/links.svg
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 3.8 KiB |
158
icons/paragraph.svg
Normal file
|
@ -0,0 +1,158 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 2.7 KiB |
96
icons/press_text.svg
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 3.6 KiB |
108
icons/tail.svg
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 4.1 KiB |
1903
images/panel.svg
Normal file
After Width: | Height: | Size: 88 KiB |
|
@ -1 +1,15 @@
|
||||||
|
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.7 First public release with updates
|
0.2.7 First public release with updates
|
||||||
|
|