Delphi + MS Word

Тема в разделе "Delphi - СОМ", создана пользователем Kettel, 14 июл 2004.

Статус темы:
Закрыта.
  1. Kettel

    Kettel Гость

    Как, работая с MS Word из своего приложения, использовать такие его возможности, как:
    - верхний и нижний колонтитулы,
    - построение оглавлений,
    - нумерация страниц,
    - разбиение текста на 2 колонки?

    Delphi 7, Word 2003
     
  2. ????

    ???? Гость

    попробуй для начала на VBA (макросы), а потом переноси на Delphi.
    p.s. оглавление точно можно сделать - я делал, всё остальное тоже (на 99,99999% уверен)
     
  3. Vagor.ini

    Vagor.ini Гость

    Работать через OLE
    Код (Text):
    unit Unit1;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    Buttons, ComCtrls, ExtCtrls, OleCtnrs;

    type
    TForm1 = class(TForm)
     OleContainer1: TOleContainer;
     Panel1: TPanel;
     StatusBar1: TStatusBar;
     mbLoad: TSpeedButton;
     mbPrint: TSpeedButton;
     OpenDialog1: TOpenDialog;
     procedure mbLoadClick(Sender: TObject);
     procedure mbPrintClick(Sender: TObject);
    private
     { Private declarations }
    public
     { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.mbLoadClick(Sender: TObject);
    begin
    // Покажем диалог, и если он отработал, то загрузим в контейнер
    if OpenDialog1.Execute and (OpenDialog1.FileName<>'') then
    OleContainer1.CreateObjectFromFile(OpenDialog1.FileName,false);
    // Если загрузилось что-нибудь, то покажем
    if OleContainer1.State <> osEmpty then
    OleContainer1.DoVerb(ovShow);
    end;

    procedure TForm1.mbPrintClick(Sender: TObject);
    var
    V : Variant;
    begin
    if OleContainer1.State = osEmpty then Begin
    MessageDlg('OLE не загружен !!', mtError, [mbOk],0);
    exit;
    end;
    // Получаем объект, который воплощает в себе WordBasic интерфейс
    V := OleContainer1.OleObject.Application.WordBasic;
    // Командуем до одурения ....
    V.FilePrint;
    end;
    end.
     
  4. Barmutik

    Barmutik Гость

    А что бы узанть как командовать .. сначала создаёш макрос которой делает то что тебе требуется, а дальше смотриш его код и просто переписываеш с использованием Дельфей.
     
  5. Garick

    Garick Гость

    Привет Мужики, я уже неделю бьюсь с Word'ом через Делфи и ни как не мегу воплатить мечту!!! Вывезти в Делфи номер текущей страницы и количество страниц всего открытого документа, ВЫРУЧАЙТЕ!!! ;)
     
  6. Barmutik

    Barmutik Гость

    Судя по всему это должно помочь:

    Код (Text):
    WordDocument1.Range.Information(wdActiveEndPageNumber или wdActiveEndAdjustedPageNumber) - активная страница
    WordDocument1.Range.Information(wdNumberOfPagesInDocument) - количество страниц в документе
     
  7. Guest_andrey1

    Guest_andrey1 Гость

    Доброго времени суток.
    Подскажите пожалуйста, как из документа Word вытащить часть текста с формулой (MathType) до определённого символа, и дописать или записать в другой документ Word ?
     
  8. Barmutik

    Barmutik Гость

    Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...
     
  9. Guest_andrey1

    Guest_andrey1 Гость

    <!--QuoteBegin-Barmutik+11:03:2005, 10:43 -->
    <span class="vbquote">(Barmutik @ 11:03:2005, 10:43 )</span><!--QuoteEBegin-->Наверно как самый простой вариант выделить нужную часть текста .. скопировать в буфер обмена и затем в другом документе вставить...[/quote]
    Забыл добавить, что сделать это нужно средствами Delphi
     
  10. Barmutik

    Barmutik Гость

    Ну так и в чём проблема ? Создаём Ком сервер у него дёпгаем методы и всё ...

    Я имел ввиду что из Дельфи в ворде выделяем требуемый участок текста, затем его копируем, затем вставляем в другой Ворд .. опять же посредством команды из Дельфи...
     
  11. Nadin

    Nadin Гость

    Работа в Delphi с Word через компонент Ekrtf
    Отчёт master detail не могу докопаться и розобраться работоть с опцией /noef/ Можно ли группировать по одному Dataset Не получается. Други муж Помогите
     
  12. Guest

    Guest Гость

    Никак не могу выровнять две колонки - стандартные примемы через разметку страницы работают не всегда. Подскажите, что делать.
     
  13. Real-Mulik

    Real-Mulik Гость

    Нрод, у меня тоже пожар! :) Открываю Ворд след. образом:

    Код (Text):
    ShellExecute(Handle, 'open', PANSICHAR(pathW), nil, nil, SW_ERASE);
    Вот только глюков дофига :( !
    1. При закрытии приложения Делфи - Ворд тоже закрывается
    2. Два раза открыть ворд в приложении невозможно!
    Что делать? :(
     
  14. mikola1

    mikola1 Гость

    Код (Text):
    ShellExecute(nil, ...);
    Читайте значения параметров. А что флаг SW_ERASE обозначает?
     
  15. ApeX

    ApeX Гость

    Ребята, хелп плиз...
    Проблема такая: нужно выровнить текст, но не весь, а конкретный кусок.
    Выделяю этот кусок текста, присоединяю WordParagraphFormat к нему, выравниваю
    WordDocument.Paragraphs.Alignment := wdAlignParagraphRight;
    но по правому краю выравнивается весь текст :-(, а остальной текст должен сохранить выравнивание по левому краю...
    Как быть?
     
  16. abv

    abv Гость

    Для: ApeX
    WordDocument.Selection.Paragraphs.Alignment := wdAlignParagraphRight
     
  17. Гость

    Кто подскажет как из Imege в Delphi поместить картинку в Word??? :(
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей