![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем доброго дня!
Парни, нужна помощь – бьюсь не первый день проблема в следующем! Задача склеивать вордовские документы, но при склейке у исходного документа ориентация листа и поля – должны быть как у источника. Порылся в сети собрал демку, на первый взгляд казалось бы работает. Но при переходе к следующему документу, настройка применяется КО ВСЕМУ ИСХОДНОМУ ДОКУМЕНТУ. Кто подскажет где не прав! Мой пример! Код:
var
_WordApp_, _WinDocument_, _WinDocumentRange_: OleVariant;
Const
_Word_Title_ = 'Word.Application';
Function CentimetersToPoints( _Steps_: Single ): Single;
begin
Result := ( 28.5 * _Steps_ );
end;
begin
_WordApp_ := CreateOleObject( _Word_Title_ );
_WordApp_.Visible := True;
_WinDocument_ := _WordApp_.Documents;
_WinDocument_.Add;
_WinDocumentRange_ := _WordApp_.ActiveDocument.Range;
_WordApp_.ActiveDocument.Range.Font.Color := RGB( 250, 50, 147 ); //clred;
_WordApp_.ActiveDocument.Range.Font.Bold := True;
_WordApp_.ActiveDocument.Range.Font.Underline := True;
_WordApp_.ActiveDocument.Range.Font.Size := 17;
_WinDocumentRange_.InsertAfter( DateTimeToStr( NOW ) );
_WordAPP_.ActiveDocument.Range( _StartPos_, _EndPos_ ).PageSetup.LeftMargin := _WordAPPSRC_.Selection.PageSetup.LeftMargin ; _WordAPP_.ActiveDocument.Range( _StartPos_, _EndPos_ ).PageSetup.TopMargin := _WordAPPSRC_.Selection.PageSetup.TopMargin ;
_WordAPP_.ActiveDocument.Range( _StartPos_, _EndPos_ ).PageSetup.RightMargin := _WordAPPSRC_.Selection.PageSetup.RightMargin ;
_WordAPP_.ActiveDocument.Range( _StartPos_, _EndPos_ ).PageSetup.BottomMargin := _WordAPPSRC_.Selection.PageSetup.BottomMargin ;
_WordAPP_.ActiveDocument.Range( _StartPos_, _EndPos_ ).PageSetup.Orientation := _WordAPPSRC_.Selection.PageSetup.Orientation ; // _WordAPP_.ActiveDocument.Range( _WordAPP_.ActiveDocument.Characters.Count - 1, _WordAPP_.ActiveDocument.Characters.Count ).PageSetup.LeftMargin := _WordAPPSRC_.Selection.PageSetup.LeftMargin;Последний раз редактировалось Admin, 26.05.2025 в 13:36. |
|
#2
|
||||
|
||||
|
Если проделать операцию "ручками" в MS Word, то это будет выглядеть +/- так:
1. Вставить разрыв раздела 2. Изменить параметры страниц нового раздела. Если включить запись макроса и проделать все тоже самое ручками, то получим: Код:
Sub Макрос1()
'
' Макрос1 Макрос
'
'
Selection.InsertBreak Type:=wdSectionBreakNextPage
If Selection.PageSetup.Orientation = wdOrientPortrait Then
Selection.PageSetup.Orientation = wdOrientLandscape
Else
Selection.PageSetup.Orientation = wdOrientPortrait
End If
With Selection.PageSetup
.LineNumbering.Active = False
.Orientation = wdOrientLandscape
.TopMargin = CentimetersToPoints(3)
.BottomMargin = CentimetersToPoints(1.5)
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(2)
.Gutter = CentimetersToPoints(0)
.HeaderDistance = CentimetersToPoints(1.25)
.FooterDistance = CentimetersToPoints(1.25)
.PageWidth = CentimetersToPoints(41.99)
.PageHeight = CentimetersToPoints(29.7)
.FirstPageTray = wdPrinterDefaultBin
.OtherPagesTray = wdPrinterDefaultBin
.SectionStart = wdSectionNewPage
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.VerticalAlignment = wdAlignVerticalTop
.SuppressEndnotes = False
.MirrorMargins = False
.TwoPagesOnOne = False
.BookFoldPrinting = False
.BookFoldRevPrinting = False
.BookFoldPrintingSheets = 1
.GutterPos = wdGutterPosLeft
End With
End Sub |
| Этот пользователь сказал Спасибо dr. F.I.N. за это полезное сообщение: | ||
TiKey (27.05.2025)
| ||