From 4c94a4486b88223e31fa906a48daef94c6d87ee8 Mon Sep 17 00:00:00 2001 From: Georgy Litvinov Date: Tue, 17 Mar 2020 16:15:01 +0100 Subject: [PATCH] Added page styles lib --- ePublishing/PageConfig.xdl | 14 ++++ ePublishing/PageStyles.xba | 128 +++++++++++++++++++++++++++++++++++++ ePublishing/dialog.xlb | 3 +- 3 files changed, 144 insertions(+), 1 deletion(-) create mode 100644 ePublishing/PageConfig.xdl create mode 100644 ePublishing/PageStyles.xba diff --git a/ePublishing/PageConfig.xdl b/ePublishing/PageConfig.xdl new file mode 100644 index 0000000..e3ac501 --- /dev/null +++ b/ePublishing/PageConfig.xdl @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ePublishing/PageStyles.xba b/ePublishing/PageStyles.xba new file mode 100644 index 0000000..46ccab8 --- /dev/null +++ b/ePublishing/PageStyles.xba @@ -0,0 +1,128 @@ + + +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("PageStyles") + inputWidth = InputBox("Введите ширину страниц (в мм):", "Установка ширины всех страниц документа", "") + inputHeight = InputBox("Введите высоту страниц (в мм):", "Установка высоты всех страниц документа", "") + inputTopMargin = InputBox("Введите размер верхнего поля (в мм):", "Установка размера верхнего поля для всех страниц", "") + inputBottomMargin = InputBox("Введите резмер нижнего поля (в мм):", "Установка размера нижнего поля для всех страниц", "") + inputLeftMargin = InputBox("Введите размер левого поля (в мм):", "Установка размера левого поля для всех страниц", "") + inputRightMargin = InputBox("Введите размер правого поля (в мм):", "Установка размера правого поля для всех страниц", "") + inputHeaderBodyDistance = InputBox("Введите расстояние от верхнего колонтитула до текста (в сотых долях мм):", "Установка расстояния от верхнего колонтитула до текста", "") + inputFooterBodyDistance = InputBox("Введите расстояние от нижнего колонтитула до текста (в сотых долях мм):", "Установка расстояния от нижнего колонтитула до текста ", "") + inputFootnoteLineTextDistance = InputBox("Введите расстояние от текста страницы до линии сноски (в сотых долях мм):", "Установка расстояния от текста страницы до линии сноски ", "") + inputFootnoteLineDistance = InputBox("Введите расстояние от линии сноски до текста сноски (в сотых долях мм):", "Установка расстояния от линии сноски до текста сноски ", "") + + 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) > 0 Then + headerBodyDistance = CLng(inputHeaderBodyDistance) + curStyle.HeaderBodyDistance = headerBodyDistance + EndIf + If CLng(inputFooterBodyDistance) > 0 Then + footerBodyDistance = CLng(inputFooterBodyDistance) + curStyle.FooterBodyDistance = footerBodyDistance + EndIf + + If CLng(inputFootnoteLineDistance) > 0 Then + footnoteLineDistance = CLng(inputFootnoteLineDistance) + curStyle.FootnoteLineDistance = footnoteLineDistance + EndIf + If CLng(inputFootnoteLineTextDistance) > 0 Then + footnoteLineTextDistance = CLng(inputFootnoteLineTextDistance) + curStyle.FootnoteLineTextDistance = footnoteLineTextDistance + EndIf + 'Globalscope.BasicLibraries.LoadLibrary( "MRILib" ) + 'Mri curStyle + + If curstyle.IsLandscape Then + If CLng(inputHeight) > 0 Then + newWidth = CLng(inputHeight + "00") + EndIf + If CLng(inputWidth) > 0 Then + newHeight = CLng(inputWidth + "00") + EndIf + + If CLng(inputLeftMargin) > 0 Then + newTopMargin = CLng(inputLeftMargin + "00") + EndIf + If CLng(inputRightMargin) > 0 Then + newBottomMargin = CLng(inputRightMargin + "00") + EndIf + If CLng(inputTopMargin) > 0 Then + newLeftMargin = CLng(inputTopMargin + "00") + EndIf + If CLng(inputBottomMargin) > 0 Then + newRightMargin = CLng(inputBottomMargin + "00") + EndIf + + Else + If CLng(inputWidth) > 0 Then + newWidth = CLng(inputWidth + "00") + EndIf + If CLng(inputHeight) > 0 Then + newHeight = CLng(inputHeight + "00") + EndIf + If CLng(inputTopMargin) > 0 Then + newTopMargin = CLng(inputTopMargin + "00") + EndIf + If CLng(inputBottomMargin) > 0 Then + newBottomMargin = CLng(inputBottomMargin + "00") + EndIf + If CLng(inputLeftMargin) > 0 Then + newLeftMargin = CLng(inputLeftMargin + "00") + EndIf + If CLng(inputRightMargin) > 0 Then + newRightMargin = CLng(inputRightMargin + "00") + EndIf + End If + textFieldWidth = newWidth - newLeftMargin - newRightMargin + textFieldHeight = newHeight - newTopMargin - newBottomMargin + If textFieldWidth > 5000 Then + curStyle.Width = newWidth + curStyle.LeftMargin = newLeftMargin + curStyle.RightMargin = newRightMargin + EndIf + + If textFieldHeight > 5000 Then + curStyle.Height = newHeight + curStyle.TopMargin = newTopMargin + curStyle.BottomMargin = newBottomMargin + EndIf + Next + + Exit Sub +End Sub + \ No newline at end of file diff --git a/ePublishing/dialog.xlb b/ePublishing/dialog.xlb index 6f7d005..32cc790 100644 --- a/ePublishing/dialog.xlb +++ b/ePublishing/dialog.xlb @@ -3,4 +3,5 @@ - + + \ No newline at end of file