Added page rotate button
This commit is contained in:
parent
fd5384612c
commit
dbf6d1d49e
4 changed files with 417 additions and 1 deletions
16
Addons.xcu
16
Addons.xcu
|
@ -147,6 +147,22 @@
|
||||||
<value>_self</value>
|
<value>_self</value>
|
||||||
</prop>
|
</prop>
|
||||||
</node>
|
</node>
|
||||||
|
<node oor:name="rotatePage" 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">Rotate page</value>
|
||||||
|
<value xml:lang="ru">Повернуть страницу</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="URL" oor:type="xs:string">
|
||||||
|
<value>macro:///ePublishing.Album.rotatePageButton</value>
|
||||||
|
</prop>
|
||||||
|
<prop oor:name="Target" oor:type="xs:string">
|
||||||
|
<value>_self</value>
|
||||||
|
</prop>
|
||||||
|
</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.1.5" />
|
<version value="0.1.6" />
|
||||||
<platform value="all" />
|
<platform value="all" />
|
||||||
<display-name>
|
<display-name>
|
||||||
<name lang="ru">Инструменты для создания электронных изданий</name>
|
<name lang="ru">Инструменты для создания электронных изданий</name>
|
||||||
|
|
399
ePublishing/Album.xba
Normal file
399
ePublishing/Album.xba
Normal file
|
@ -0,0 +1,399 @@
|
||||||
|
<?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="Album" script:language="StarBasic" script:moduleType="normal">Sub albumMark2
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub rotatePageButton
|
||||||
|
Dim curPageStyleName As String
|
||||||
|
Dim pageStyles As Object
|
||||||
|
Dim pageStyle As Object
|
||||||
|
curPageStyleName = getCurPageStyleName()
|
||||||
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
|
pageStyle = pageStyles.getByName(curPageStyleName)
|
||||||
|
If pageStyle.IsLandScape Then
|
||||||
|
undoPageAlbum
|
||||||
|
Else
|
||||||
|
makePageAlbum
|
||||||
|
EndIf
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub makePageAlbum
|
||||||
|
Dim curPageStyleName As String
|
||||||
|
'saveVersion("Перед выполнением макроса повоорта страницы в альбомную ориентацию")
|
||||||
|
curPageStyleName = getCurPageStyleName()
|
||||||
|
findBestAnchor()
|
||||||
|
If checkPageSettings(curPageStyleName) Then
|
||||||
|
MsgBox "Проверьте размеры колонтитулов и перезапустите макрос"
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
rotatePageClockwise(curPageStyleName)
|
||||||
|
'saveAndreload()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub findBestAnchor()
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
Dim curPageStyleName As String
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
Dim oTextCursor As Object
|
||||||
|
curPageStyleName = getCurPageStyleName()
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oViewCursor.jumpToStartOfPage()
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor.End)
|
||||||
|
If NOT oTextCursor.isStartOfParagraph Then
|
||||||
|
oTextCursor.goToNextParagraph(false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
EndIf
|
||||||
|
If curPageStyleName = getCurPageStyleName() Then
|
||||||
|
Exit Sub
|
||||||
|
EndIf
|
||||||
|
MsgBox "Произошла ошибка. Обратитесь к разработчику."
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub undoPageAlbum
|
||||||
|
Dim curPageStyleName As String
|
||||||
|
curPageStyleName = getCurPageStyleName()
|
||||||
|
applyPortraitPageStyle(curPageStyleName)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
sub applyPortraitPageStyle(pageStyleName)
|
||||||
|
Dim pageStyles As Object
|
||||||
|
Dim pageStyle As Object
|
||||||
|
Dim oViewCursor As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
breakType = oViewCursor.getPropertyValue("BreakType")
|
||||||
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
|
If NOT pageStyle.IsLandScape Then
|
||||||
|
MsgBox "Страница уже имеет портретную ориентацию. Ничего не делаем. Выходим."
|
||||||
|
Exit sub
|
||||||
|
EndIf
|
||||||
|
If pageStyles.hasByName("portrait_" & pageStyleName) Then
|
||||||
|
|
||||||
|
replacePageStyleByPortrait(pageStyleName)
|
||||||
|
removeAlbumFrames(pageStyleName)
|
||||||
|
' Globalscope.BasicLibraries.LoadLibrary( "MRILib" )
|
||||||
|
Else
|
||||||
|
MsgBox "Стиль страницы с портретной ориентацией portrait_" & pageStyleName & " не был найден. "
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub replacePageStyleByPortrait(pageStyleName)
|
||||||
|
Dim pageStyles As Object
|
||||||
|
Dim pageStyle As Object
|
||||||
|
Dim oldPageStyle As Object
|
||||||
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
|
oldPageStyle = pageStyles.getByName(pageStyleName)
|
||||||
|
For i = 0 To pageStyles.getCount() - 1
|
||||||
|
pageStyle = pageStyles.getByIndex(i)
|
||||||
|
If pageStyle.FollowStyle = pageStyleName Then
|
||||||
|
pageStyle.FollowStyle = "portrait_" & pageStyleName
|
||||||
|
EndIf
|
||||||
|
If pageStyle.getName() = "portrait_" & pageStyleName Then
|
||||||
|
pageStyle.FollowStyle = oldPageStyle.FollowStyle
|
||||||
|
EndIf
|
||||||
|
Next i
|
||||||
|
pageStyle = pageStyles.getByName("portrait_" & pageStyleName)
|
||||||
|
pageStyle.Hidden = false
|
||||||
|
pageStyle.FollowStyle = oldPageStyle.FollowStyle
|
||||||
|
|
||||||
|
'Replace in direct formatting
|
||||||
|
textEnumeration = ThisComponent.Text.createEnumeration
|
||||||
|
While textEnumeration.hasMoreElements
|
||||||
|
enumerationElement = textEnumeration.nextElement
|
||||||
|
If enumerationElement.pageDescName = pageStyleName Then
|
||||||
|
enumerationElement.pageDescName = "portrait_" & pageStyleName
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
|
||||||
|
'Replace album style by portrait
|
||||||
|
If oldPageStyle.IsUserDefined() Then
|
||||||
|
pageStyles.removeByName(pageStyleName)
|
||||||
|
pageStyles.getByName("portrait_" & pageStyleName).setName(pageStyleName)
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
Sub removeAlbumFrames(pageStyleName)
|
||||||
|
Dim drawPagesEnum As Object
|
||||||
|
Dim drawPage As Object
|
||||||
|
drawPagesEnum = ThisComponent.DrawPage.CreateEnumeration()
|
||||||
|
While drawPagesEnum.hasMoreElements()
|
||||||
|
drawPage = drawPagesEnum.nextElement()
|
||||||
|
If drawPage.getName() = "header_" & pageStyleName Or drawPage.getName() = "footer_" & pageStyleName Then
|
||||||
|
drawPage.dispose()
|
||||||
|
EndIf
|
||||||
|
Wend
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
sub savePortraitPageStyle(pageStyleName)
|
||||||
|
createPageStyleByExample("portrait_" & pageStyleName)
|
||||||
|
hidePageStyle("portrait_" & pageStyleName)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub hidePageStyle(pageStyleName As String)
|
||||||
|
'Globalscope.BasicLibraries.LoadLibrary("MRILib")
|
||||||
|
Dim pageStyles As Object
|
||||||
|
Dim pageStyle As Object
|
||||||
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
|
pageStyle.Hidden = true
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub rotatePageClockwise(pageStyleName)
|
||||||
|
Dim pageStyles As Object
|
||||||
|
Dim pageStyle As Object
|
||||||
|
Dim tmpDimension As Long
|
||||||
|
Dim frame As Object
|
||||||
|
Dim frameName As String
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
pageNumber = oViewCursor.getPage()
|
||||||
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
|
If pageStyle.IsLandScape Then
|
||||||
|
MsgBox "Страница уже имеет альбомную ориентацию. Ничего не делаем. Выходим."
|
||||||
|
Exit sub
|
||||||
|
EndIf
|
||||||
|
If NOT pageStyle.IsUserDefined() Then
|
||||||
|
pageStyleName = "new" & pageStyleName
|
||||||
|
createPageStyleByExample(pageStyleName)
|
||||||
|
oViewCursor.pageDescName = pageStyleName
|
||||||
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
|
EndIf
|
||||||
|
savePortraitPageStyle(pageStyleName)
|
||||||
|
If pageStyle.HeaderIsOn Then
|
||||||
|
headerFrameW = pageStyle.HeaderHeight - pageStyle.HeaderBodyDistance
|
||||||
|
headerFrameH = pageStyle.Width - pageStyle.HeaderLeftMargin - pageStyle.HeaderRightMargin - pageStyle.LeftMargin - pageStyle.RightMargin
|
||||||
|
headerFrameYOffset = pageStyle.HeaderLeftMargin + pageStyle.LeftMargin
|
||||||
|
headerFrameXOffset = pageStyle.Height - pageStyle.TopMargin - (pageStyle.HeaderHeight - pageStyle.HeaderBodyDistance)
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If pageStyle.FooterIsOn Then
|
||||||
|
footerFrameW = pageStyle.FooterHeight - pageStyle.FooterBodyDistance
|
||||||
|
footerFrameH = pageStyle.Width - pageStyle.FooterLeftMargin - pageStyle.FooterRightMargin - pageStyle.LeftMargin - pageStyle.RightMargin
|
||||||
|
footerFrameYOffset = pageStyle.FooterLeftMargin + pageStyle.LeftMargin
|
||||||
|
footerFrameXOffset = pageStyle.BottomMargin
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
rotatePageClockwiseMargins(pageStyle)
|
||||||
|
rotatePageOrientation(pageStyle)
|
||||||
|
|
||||||
|
If pageStyle.HeaderIsOn Then
|
||||||
|
If NOT pageStyle.FirstIsShared Then
|
||||||
|
textElement = pageStyle.HeaderTextFirst
|
||||||
|
ElseIf NOT pageStyle.HeaderIsShared Then
|
||||||
|
If pageNumber Mod 2 = 1 Then
|
||||||
|
textElement = pageStyle.HeaderTextRight
|
||||||
|
Else
|
||||||
|
textElement = pageStyle.HeaderTextLeft
|
||||||
|
EndIf
|
||||||
|
Else
|
||||||
|
textElement = pageStyle.HeaderText
|
||||||
|
EndIf
|
||||||
|
frameName = "header_" & pageStyleName
|
||||||
|
copyTextToFrame(textElement,headerFrameXOffset,headerFrameYOffset,headerFrameW,headerFrameH,frameName)
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
If pageStyle.FooterIsOn Then
|
||||||
|
If NOT pageStyle.FirstIsShared Then
|
||||||
|
textElement = pageStyle.FooterTextFirst
|
||||||
|
ElseIf NOT pageStyle.FooterIsShared Then
|
||||||
|
If pageNumber Mod 2 = 1 Then
|
||||||
|
textElement = pageStyle.FooterTextRight
|
||||||
|
Else
|
||||||
|
textElement = pageStyle.FooterTextLeft
|
||||||
|
EndIf
|
||||||
|
Else
|
||||||
|
textElement = pageStyle.FooterText
|
||||||
|
EndIf
|
||||||
|
frameName = "footer_" & pageStyleName
|
||||||
|
copyTextToFrame(textElement,footerFrameXOffset,footerFrameYOffset,footerFrameW,footerFrameH,frameName)
|
||||||
|
EndIf
|
||||||
|
|
||||||
|
removePageHeader(pageStyle)
|
||||||
|
removePageFooter(pageStyle)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub rotatePageClockwiseMargins(pageStyle)
|
||||||
|
Dim tmpDimension As Long
|
||||||
|
tmpDimension = pageStyle.LeftMargin
|
||||||
|
If pageStyle.FooterIsOn Then
|
||||||
|
pageStyle.LeftMargin = pageStyle.BottomMargin + pageStyle.FooterHeight
|
||||||
|
Else
|
||||||
|
pageStyle.LeftMargin = pageStyle.BottomMargin
|
||||||
|
EndIf
|
||||||
|
pageStyle.BottomMargin = pageStyle.RightMargin
|
||||||
|
If pageStyle.HeaderIsOn Then
|
||||||
|
pageStyle.RightMargin = pageStyle.TopMargin + pageStyle.HeaderHeight
|
||||||
|
Else
|
||||||
|
pageStyle.RightMargin = pageStyle.TopMargin
|
||||||
|
EndIf
|
||||||
|
pageStyle.TopMargin = tmpDimension
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub rotatePageOrientation(pageStyle)
|
||||||
|
Dim tmpDimension As Long
|
||||||
|
tmpDimension = pageStyle.Height
|
||||||
|
pageStyle.Height = pageStyle.Width
|
||||||
|
pageStyle.Width = tmpDimension
|
||||||
|
pageStyle.IsLandscape = Not pageStyle.IsLandscape
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function checkPageSettings(pageStyleName)
|
||||||
|
checkPageSettings = false
|
||||||
|
pageStyles = ThisComponent.StyleFamilies.getByName("PageStyles")
|
||||||
|
pageStyle = pageStyles.getByName(pageStyleName)
|
||||||
|
If pageStyle.HeaderIsOn Then
|
||||||
|
If pageStyle.HeaderIsDynamicHeight Then
|
||||||
|
checkPageSettings = true
|
||||||
|
pageStyle.HeaderIsDynamicHeight = false
|
||||||
|
MsgBox "Высота верхнего колонтитула была задана динамической. Отключаем."
|
||||||
|
EndIf
|
||||||
|
If pageStyle.HeaderDynamicSpacing Then
|
||||||
|
checkPageSettings = true
|
||||||
|
pageStyle.HeaderDynamicSpacing = false
|
||||||
|
MsgBox "Отступ верхнего колонтитула от тела страницы был задан динамическим. Отключаем."
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
If pageStyle.FooterIsOn Then
|
||||||
|
If pageStyle.FooterIsDynamicHeight Then
|
||||||
|
checkPageSettings = true
|
||||||
|
pageStyle.FooterIsDynamicHeight = false
|
||||||
|
MsgBox "Высота нижнего колонтитула была задана динамической. Отключаем."
|
||||||
|
EndIf
|
||||||
|
If pageStyle.FooterDynamicSpacing Then
|
||||||
|
checkPageSettings = true
|
||||||
|
pageStyle.FooterDynamicSpacing = false
|
||||||
|
MsgBox "Отступ нижнего колонтитула от тела страницы был задан динамическим. Отключаем."
|
||||||
|
EndIf
|
||||||
|
EndIf
|
||||||
|
'Workaround to force Writer reread new page settings
|
||||||
|
If checkPageSettings Then
|
||||||
|
pageStyle.FirstIsShared = true
|
||||||
|
pageStyle.FirstIsShared = false
|
||||||
|
pageStyle.FirstIsShared = true
|
||||||
|
EndIf
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
Sub copyTextToFrame(textElement,frameXOffset,frameYOffset,frameW,frameH,frameName)
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
initialCursorPosition = oViewCursor.Text.createTextCursorByRange(oViewCursor.End)
|
||||||
|
frame = createFrame(frameXOffset,frameYOffset,frameW,frameH,frameName)
|
||||||
|
enumeration = textElement.CreateEnumeration()
|
||||||
|
firstElement = true
|
||||||
|
While enumeration.hasMoreElements
|
||||||
|
element = enumeration.nextElement()
|
||||||
|
If element.supportsService("com.sun.star.text.TextTable") Then
|
||||||
|
cellNames = element.getCellNames()
|
||||||
|
element.IsWidthRelative = false
|
||||||
|
firstCellAnchor = element.getCellByName(cellNames(LBound(cellNames))).getStart()
|
||||||
|
lastCellAnchor = element.getCellByName(cellNames(UBound(cellNames))).getEnd()
|
||||||
|
oViewCursor.goToRange(firstCellAnchor,false)
|
||||||
|
oViewCursor.goToRange(lastCellAnchor,true)
|
||||||
|
unoCopy()
|
||||||
|
oViewCursor.goToRange(frame.Text.End,false)
|
||||||
|
unoPaste()
|
||||||
|
If firstElement Then
|
||||||
|
frame.Text.CreateEnumeration().nextElement.dispose()
|
||||||
|
EndIf
|
||||||
|
ElseIf element.supportsService("com.sun.star.text.Paragraph") Then
|
||||||
|
oViewCursor.goToRange(element,false)
|
||||||
|
unoCopy()
|
||||||
|
oViewCursor.goToRange(frame.Text.End,false)
|
||||||
|
unoPaste()
|
||||||
|
EndIf
|
||||||
|
firstElement = false
|
||||||
|
Wend
|
||||||
|
oViewCursor.goToRange(initialCursorPosition,false)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub removePageHeader(pageStyle)
|
||||||
|
pageStyle.headerIsOn = false
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Sub removePageFooter(pageStyle)
|
||||||
|
pageStyle.FooterIsOn = false
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Function getCurPageStyleName()
|
||||||
|
dim curPageStyleName as String
|
||||||
|
dim oViewCursor as Object
|
||||||
|
dim oTextCursor as Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
'Mri oViewCursor
|
||||||
|
If Not oViewCursor.isAtEndOfLine() And Not oViewCursor.isAtStartOfLine() Then
|
||||||
|
oViewCursor.goToStartOfLine(false)
|
||||||
|
EndIf
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
If oTextCursor.isStartOfParagraph() Then
|
||||||
|
getCurPageStyleName = oViewCursor.PageStyleName
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
If oTextCursor.isEndOfParagraph() Then
|
||||||
|
getCurPageStyleName = oViewCursor.PageStyleName
|
||||||
|
Exit Function
|
||||||
|
EndIf
|
||||||
|
oViewCursor.Text.insertControlCharacter(oViewCursor.End,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
|
||||||
|
oViewCursor.paraOrphans = 0
|
||||||
|
oViewCursor.paraWidows = 0
|
||||||
|
oTextCursor = oViewCursor.Text.createTextCursorByRange(oViewCursor)
|
||||||
|
oTextCursor.goRight(1,false)
|
||||||
|
oViewCursor.goToRange(oTextCursor,false)
|
||||||
|
getCurPageStyleName = oViewCursor.pageStyleName
|
||||||
|
oViewCursor.goLeft(1,false)
|
||||||
|
backspace()
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Sub unoCopy
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
sub unoPaste
|
||||||
|
dim document as object
|
||||||
|
dim dispatcher as object
|
||||||
|
document = ThisComponent.CurrentController.Frame
|
||||||
|
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
|
||||||
|
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
|
||||||
|
end sub
|
||||||
|
|
||||||
|
Function createFrame(posX,posY,width,height,frameName)
|
||||||
|
Dim oViewCursor as Object
|
||||||
|
Dim oTextCursor as Object
|
||||||
|
Dim oText As Object
|
||||||
|
oViewCursor = ThisComponent.CurrentController.getViewCursor()
|
||||||
|
oText = oViewCursor.Text
|
||||||
|
oTextCursor = oText.createTextCursorByRange(oViewCursor.End)
|
||||||
|
frame = ThisComponent.createInstance("com.sun.star.text.TextFrame")
|
||||||
|
frame.AnchorType = 2
|
||||||
|
frame.Height = height
|
||||||
|
frame.Width = width
|
||||||
|
frame.PageToggle = false
|
||||||
|
frame.BorderDistance = 0
|
||||||
|
frame.HoriOrient = 0
|
||||||
|
frame.HoriOrientRelation = 7
|
||||||
|
frame.HoriOrientPosition= posX
|
||||||
|
frame.VertOrient = 0
|
||||||
|
frame.VertOrientRelation = 7
|
||||||
|
frame.VertOrientPosition = posY
|
||||||
|
oText.insertTextContent(oTextCursor.Start, frame, false)
|
||||||
|
frame.FrameIsAutomaticHeight = false
|
||||||
|
border = frame.bottomBorder
|
||||||
|
border.OuterLineWidth = 0
|
||||||
|
border.LineWidth = 0
|
||||||
|
frame.bottomBorder = border
|
||||||
|
frame.topBorder = border
|
||||||
|
frame.leftBorder = border
|
||||||
|
frame.rightBorder = border
|
||||||
|
frame.WritingMode = 2
|
||||||
|
frame.PositionProtected = true
|
||||||
|
frame.Name = frameName
|
||||||
|
createFrame = frame
|
||||||
|
End Function
|
||||||
|
</script:module>
|
|
@ -6,4 +6,5 @@
|
||||||
<library:element library:name="journals"/>
|
<library:element library:name="journals"/>
|
||||||
<library:element library:name="Footnotes"/>
|
<library:element library:name="Footnotes"/>
|
||||||
<library:element library:name="TOCLinks"/>
|
<library:element library:name="TOCLinks"/>
|
||||||
|
<library:element library:name="Album"/>
|
||||||
</library:library>
|
</library:library>
|
Loading…
Add table
Reference in a new issue