|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  ComObj или как правильно применить настройки полей для конкретного листа в WORD Всем доброго дня!  Парни, нужна помощь – бьюсь не первый день проблема в следующем! Задача склеивать вордовские документы, но при склейке у исходного документа ориентация листа и поля – должны быть как у источника. Порылся в сети собрал демку, на первый взгляд казалось бы работает. Но при переходе к следующему документу, настройка применяется КО ВСЕМУ ИСХОДНОМУ ДОКУМЕНТУ. Кто подскажет где не прав! Мой пример! Код: 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)
 | ||