Показать сообщение отдельно
  #1  
Старый 26.05.2025, 13:27
TiKey TiKey вне форума
Прохожий
 
Регистрация: 26.05.2025
Сообщения: 1
Версия Delphi: D7
Репутация: 10
По умолчанию 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;
Админ: Пользуемся тегами при оформлении кода!
Ответить с цитированием