1*b1cdbd2cSJim JagielskiAttribute VB_Name = "Preparation"
2*b1cdbd2cSJim Jagielski'*************************************************************************
3*b1cdbd2cSJim Jagielski'
4*b1cdbd2cSJim Jagielski'  Licensed to the Apache Software Foundation (ASF) under one
5*b1cdbd2cSJim Jagielski'  or more contributor license agreements.  See the NOTICE file
6*b1cdbd2cSJim Jagielski'  distributed with this work for additional information
7*b1cdbd2cSJim Jagielski'  regarding copyright ownership.  The ASF licenses this file
8*b1cdbd2cSJim Jagielski'  to you under the Apache License, Version 2.0 (the
9*b1cdbd2cSJim Jagielski'  "License"); you may not use this file except in compliance
10*b1cdbd2cSJim Jagielski'  with the License.  You may obtain a copy of the License at
11*b1cdbd2cSJim Jagielski'
12*b1cdbd2cSJim Jagielski'    http://www.apache.org/licenses/LICENSE-2.0
13*b1cdbd2cSJim Jagielski'
14*b1cdbd2cSJim Jagielski'  Unless required by applicable law or agreed to in writing,
15*b1cdbd2cSJim Jagielski'  software distributed under the License is distributed on an
16*b1cdbd2cSJim Jagielski'  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17*b1cdbd2cSJim Jagielski'  KIND, either express or implied.  See the License for the
18*b1cdbd2cSJim Jagielski'  specific language governing permissions and limitations
19*b1cdbd2cSJim Jagielski'  under the License.
20*b1cdbd2cSJim Jagielski'
21*b1cdbd2cSJim Jagielski'*************************************************************************
22*b1cdbd2cSJim JagielskiOption Explicit
23*b1cdbd2cSJim Jagielski
24*b1cdbd2cSJim JagielskiFunction Prepare_HeaderFooter_GraphicFrames(docAnalysis As DocumentAnalysis, myIssue As IssueInfo, _
25*b1cdbd2cSJim Jagielski                                            var As Variant, currDoc As Document) As Boolean
26*b1cdbd2cSJim Jagielski    On Error GoTo HandleErrors
27*b1cdbd2cSJim Jagielski    Dim currentFunctionName As String
28*b1cdbd2cSJim Jagielski    currentFunctionName = "Prepare_HeaderFooter_GraphicFrames"
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski    Dim myPrepInfo As PrepareInfo
31*b1cdbd2cSJim Jagielski    Set myPrepInfo = var
32*b1cdbd2cSJim Jagielski
33*b1cdbd2cSJim Jagielski    Dim smove As Long
34*b1cdbd2cSJim Jagielski    Dim temp As Single
35*b1cdbd2cSJim Jagielski    Dim ELength As Single
36*b1cdbd2cSJim Jagielski    Dim PageHeight As Single
37*b1cdbd2cSJim Jagielski    Dim Snum As Integer
38*b1cdbd2cSJim Jagielski    Dim Fnum As Integer
39*b1cdbd2cSJim Jagielski    Dim I As Integer
40*b1cdbd2cSJim Jagielski    Dim myshape As Shape
41*b1cdbd2cSJim Jagielski    Dim shapetop() As Single
42*b1cdbd2cSJim Jagielski    Dim temptop As Single
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim Jagielski    With currDoc.ActiveWindow 'change to printview
45*b1cdbd2cSJim Jagielski    If .View.SplitSpecial = wdPaneNone Then
46*b1cdbd2cSJim Jagielski        .ActivePane.View.Type = wdPrintView
47*b1cdbd2cSJim Jagielski    Else
48*b1cdbd2cSJim Jagielski        .Panes(2).Close
49*b1cdbd2cSJim Jagielski        .ActivePane.View.Type = wdPrintView
50*b1cdbd2cSJim Jagielski        .View.Type = wdPrintView
51*b1cdbd2cSJim Jagielski    End If
52*b1cdbd2cSJim Jagielski    End With
53*b1cdbd2cSJim Jagielski
54*b1cdbd2cSJim Jagielski    PageHeight = currDoc.PageSetup.PageHeight
55*b1cdbd2cSJim Jagielski    PageHeight = PageHeight / 2
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielski    Selection.GoTo what:=wdGoToPage, Which:=wdGoToAbsolute, _
58*b1cdbd2cSJim Jagielski           count:=myPrepInfo.HF_OnPage
59*b1cdbd2cSJim Jagielski    currDoc.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
60*b1cdbd2cSJim Jagielski
61*b1cdbd2cSJim Jagielski    Snum = myPrepInfo.HF_Shapes.count
62*b1cdbd2cSJim Jagielski    If Snum <> 0 Then
63*b1cdbd2cSJim Jagielski       ReDim shapetop(Snum)
64*b1cdbd2cSJim Jagielski       ReDim top(Snum)
65*b1cdbd2cSJim Jagielski        I = 0
66*b1cdbd2cSJim Jagielski        For Each myshape In myPrepInfo.HF_Shapes
67*b1cdbd2cSJim Jagielski            If myshape.Type = msoPicture Then
68*b1cdbd2cSJim Jagielski                If myshape.RelativeVerticalPosition <> wdRelativeVerticalPositionPage Then
69*b1cdbd2cSJim Jagielski                    shapetop(I) = myshape.top + myshape.Anchor.Information(wdVerticalPositionRelativeToPage)
70*b1cdbd2cSJim Jagielski                Else
71*b1cdbd2cSJim Jagielski                    shapetop(I) = myshape.top
72*b1cdbd2cSJim Jagielski                End If
73*b1cdbd2cSJim Jagielski            ElseIf myshape.Type = msoTextBox Then
74*b1cdbd2cSJim Jagielski                myshape.TextFrame.TextRange.Select
75*b1cdbd2cSJim Jagielski
76*b1cdbd2cSJim Jagielski                shapetop(I) = Selection.Information(wdVerticalPositionRelativeToPage)
77*b1cdbd2cSJim Jagielski            End If
78*b1cdbd2cSJim Jagielski            I = I + 1
79*b1cdbd2cSJim Jagielski        Next myshape
80*b1cdbd2cSJim Jagielski    End If
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski    currDoc.Content.Select
83*b1cdbd2cSJim Jagielski    Selection.GoTo what:=wdGoToPage, Which:=wdGoToAbsolute, _
84*b1cdbd2cSJim Jagielski           count:=myPrepInfo.HF_OnPage 'set frametop might change the selection position
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski    If myPrepInfo.HF_inheader Then
87*b1cdbd2cSJim Jagielski        currDoc.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
88*b1cdbd2cSJim Jagielski        Selection.MoveStart
89*b1cdbd2cSJim Jagielski        ELength = 0
90*b1cdbd2cSJim Jagielski        While ELength < myPrepInfo.HF_extendLength
91*b1cdbd2cSJim Jagielski            Selection.TypeParagraph
92*b1cdbd2cSJim Jagielski            ELength = ELength + Selection.Characters.First.Font.Size
93*b1cdbd2cSJim Jagielski        Wend
94*b1cdbd2cSJim Jagielski    Else
95*b1cdbd2cSJim Jagielski        currDoc.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
96*b1cdbd2cSJim Jagielski        Selection.MoveStart
97*b1cdbd2cSJim Jagielski        ELength = 0
98*b1cdbd2cSJim Jagielski        While ELength < myPrepInfo.HF_extendLength
99*b1cdbd2cSJim Jagielski            Selection.TypeParagraph
100*b1cdbd2cSJim Jagielski            ELength = ELength + Selection.Characters.First.Font.Size
101*b1cdbd2cSJim Jagielski        Wend
102*b1cdbd2cSJim Jagielski    End If
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski    If Snum <> 0 Then
105*b1cdbd2cSJim Jagielski        I = 0
106*b1cdbd2cSJim Jagielski        For Each myshape In myPrepInfo.HF_Shapes
107*b1cdbd2cSJim Jagielski            If myshape.Type = msoPicture Then
108*b1cdbd2cSJim Jagielski                If myshape.RelativeVerticalPosition <> wdRelativeVerticalPositionPage Then
109*b1cdbd2cSJim Jagielski                    temptop = myshape.top + myshape.Anchor.Information(wdVerticalPositionRelativeToPage)
110*b1cdbd2cSJim Jagielski                Else
111*b1cdbd2cSJim Jagielski                    temptop = myshape.top
112*b1cdbd2cSJim Jagielski                End If
113*b1cdbd2cSJim Jagielski            ElseIf myshape.Type = msoTextBox Then
114*b1cdbd2cSJim Jagielski                myshape.TextFrame.TextRange.Select
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski                temptop = Selection.Information(wdVerticalPositionRelativeToPage)
117*b1cdbd2cSJim Jagielski            End If
118*b1cdbd2cSJim Jagielski            Selection.GoTo what:=wdGoToPage, Which:=wdGoToAbsolute, _
119*b1cdbd2cSJim Jagielski            count:=myPrepInfo.HF_OnPage
120*b1cdbd2cSJim Jagielski            If myPrepInfo.HF_inheader Then
121*b1cdbd2cSJim Jagielski                currDoc.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
122*b1cdbd2cSJim Jagielski            Else
123*b1cdbd2cSJim Jagielski                currDoc.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
124*b1cdbd2cSJim Jagielski            End If
125*b1cdbd2cSJim Jagielski            Selection.HeaderFooter.Shapes(myshape.name).Select
126*b1cdbd2cSJim Jagielski            Selection.ShapeRange.IncrementTop shapetop(I) - temptop
127*b1cdbd2cSJim Jagielski            I = I + 1
128*b1cdbd2cSJim Jagielski        Next myshape
129*b1cdbd2cSJim Jagielski    End If
130*b1cdbd2cSJim Jagielski    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
131*b1cdbd2cSJim Jagielski    Prepare_HeaderFooter_GraphicFrames = True
132*b1cdbd2cSJim JagielskiFinalExit:
133*b1cdbd2cSJim Jagielski    Exit Function
134*b1cdbd2cSJim Jagielski
135*b1cdbd2cSJim JagielskiHandleErrors:
136*b1cdbd2cSJim Jagielski    WriteDebug currentFunctionName & " : " & docAnalysis.name & ": " & Err.Number & " " & Err.Description & " " & Err.Source
137*b1cdbd2cSJim Jagielski    Resume FinalExit
138*b1cdbd2cSJim JagielskiEnd Function
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski'Stub for Excel Prepare SheetName
141*b1cdbd2cSJim JagielskiFunction Prepare_WorkbookVersion() As Boolean
142*b1cdbd2cSJim Jagielski    Prepare_WorkbookVersion = False
143*b1cdbd2cSJim JagielskiEnd Function
144*b1cdbd2cSJim Jagielski
145*b1cdbd2cSJim Jagielski
146