epublishing/ePublishing/PageStyles.xba

128 lines
6.3 KiB
Text
Raw Normal View History

2020-03-17 16:15:01 +01:00
<?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="PageStyles" script:language="StarBasic" script:moduleType="normal">Sub setDimensions
Dim oStyles As Object
Dim curStyle As Object
Dim inputHeight As String
Dim inputTopMargin As String
Dim inputBottomMargin As String
Dim inputLeftMargin As String
Dim inputRightMargin As String
Dim inputHeaderBodyDistance As String
Dim inputFooterBodyDistance As String
Dim inputFootnoteLineDistance As String
Dim inputFootnoteLineTextDistance As String
Dim newWidth As Long
Dim newHeight As Long
Dim newTopMargin As Long
Dim newBottomMargin As Long
Dim newLeftMargin As Long
Dim newRightMargin As Long
Dim textFieldHeight As Long
Dim textFieldWidth As Long
Dim headerBodyDistance As Long
Dim footerBodyDistance As Long
Dim footnoteLineDistance As Long
Dim footnoteLineTextDistance As Long
oStyles = ThisComponent.StyleFamilies.getByName(&quot;PageStyles&quot;)
inputWidth = InputBox(&quot;Введите ширину страниц (в мм):&quot;, &quot;Установка ширины всех страниц документа&quot;, &quot;&quot;)
inputHeight = InputBox(&quot;Введите высоту страниц (в мм):&quot;, &quot;Установка высоты всех страниц документа&quot;, &quot;&quot;)
inputTopMargin = InputBox(&quot;Введите размер верхнего поля (в мм):&quot;, &quot;Установка размера верхнего поля для всех страниц&quot;, &quot;&quot;)
inputBottomMargin = InputBox(&quot;Введите резмер нижнего поля (в мм):&quot;, &quot;Установка размера нижнего поля для всех страниц&quot;, &quot;&quot;)
inputLeftMargin = InputBox(&quot;Введите размер левого поля (в мм):&quot;, &quot;Установка размера левого поля для всех страниц&quot;, &quot;&quot;)
inputRightMargin = InputBox(&quot;Введите размер правого поля (в мм):&quot;, &quot;Установка размера правого поля для всех страниц&quot;, &quot;&quot;)
inputHeaderBodyDistance = InputBox(&quot;Введите расстояние от верхнего колонтитула до текста (в сотых долях мм):&quot;, &quot;Установка расстояния от верхнего колонтитула до текста&quot;, &quot;&quot;)
inputFooterBodyDistance = InputBox(&quot;Введите расстояние от нижнего колонтитула до текста (в сотых долях мм):&quot;, &quot;Установка расстояния от нижнего колонтитула до текста &quot;, &quot;&quot;)
inputFootnoteLineTextDistance = InputBox(&quot;Введите расстояние от текста страницы до линии сноски (в сотых долях мм):&quot;, &quot;Установка расстояния от текста страницы до линии сноски &quot;, &quot;&quot;)
inputFootnoteLineDistance = InputBox(&quot;Введите расстояние от линии сноски до текста сноски (в сотых долях мм):&quot;, &quot;Установка расстояния от линии сноски до текста сноски &quot;, &quot;&quot;)
For i = 0 to oStyles.Count - 1
curStyle = oStyles.getByIndex(i)
newWidth = curStyle.Width
newHeight = curStyle.height
newTopMargin = curStyle.TopMargin
newBottomMargin = curStyle.BottomMargin
newLeftMargin = curStyle.LeftMargin
newRightMargin = curStyle.RightMargin
If CLng(inputHeaderBodyDistance) &gt; 0 Then
headerBodyDistance = CLng(inputHeaderBodyDistance)
curStyle.HeaderBodyDistance = headerBodyDistance
EndIf
If CLng(inputFooterBodyDistance) &gt; 0 Then
footerBodyDistance = CLng(inputFooterBodyDistance)
curStyle.FooterBodyDistance = footerBodyDistance
EndIf
If CLng(inputFootnoteLineDistance) &gt; 0 Then
footnoteLineDistance = CLng(inputFootnoteLineDistance)
curStyle.FootnoteLineDistance = footnoteLineDistance
EndIf
If CLng(inputFootnoteLineTextDistance) &gt; 0 Then
footnoteLineTextDistance = CLng(inputFootnoteLineTextDistance)
curStyle.FootnoteLineTextDistance = footnoteLineTextDistance
EndIf
&apos;Globalscope.BasicLibraries.LoadLibrary( &quot;MRILib&quot; )
&apos;Mri curStyle
If curstyle.IsLandscape Then
If CLng(inputHeight) &gt; 0 Then
newWidth = CLng(inputHeight + &quot;00&quot;)
EndIf
If CLng(inputWidth) &gt; 0 Then
newHeight = CLng(inputWidth + &quot;00&quot;)
EndIf
If CLng(inputLeftMargin) &gt; 0 Then
newTopMargin = CLng(inputLeftMargin + &quot;00&quot;)
EndIf
If CLng(inputRightMargin) &gt; 0 Then
newBottomMargin = CLng(inputRightMargin + &quot;00&quot;)
EndIf
If CLng(inputTopMargin) &gt; 0 Then
newLeftMargin = CLng(inputTopMargin + &quot;00&quot;)
EndIf
If CLng(inputBottomMargin) &gt; 0 Then
newRightMargin = CLng(inputBottomMargin + &quot;00&quot;)
EndIf
Else
If CLng(inputWidth) &gt; 0 Then
newWidth = CLng(inputWidth + &quot;00&quot;)
EndIf
If CLng(inputHeight) &gt; 0 Then
newHeight = CLng(inputHeight + &quot;00&quot;)
EndIf
If CLng(inputTopMargin) &gt; 0 Then
newTopMargin = CLng(inputTopMargin + &quot;00&quot;)
EndIf
If CLng(inputBottomMargin) &gt; 0 Then
newBottomMargin = CLng(inputBottomMargin + &quot;00&quot;)
EndIf
If CLng(inputLeftMargin) &gt; 0 Then
newLeftMargin = CLng(inputLeftMargin + &quot;00&quot;)
EndIf
If CLng(inputRightMargin) &gt; 0 Then
newRightMargin = CLng(inputRightMargin + &quot;00&quot;)
EndIf
End If
textFieldWidth = newWidth - newLeftMargin - newRightMargin
textFieldHeight = newHeight - newTopMargin - newBottomMargin
If textFieldWidth &gt; 5000 Then
curStyle.Width = newWidth
curStyle.LeftMargin = newLeftMargin
curStyle.RightMargin = newRightMargin
EndIf
If textFieldHeight &gt; 5000 Then
curStyle.Height = newHeight
curStyle.TopMargin = newTopMargin
curStyle.BottomMargin = newBottomMargin
EndIf
Next
Exit Sub
End Sub
</script:module>