Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Работа с WordApplication и WordDocument   Найти похожие ветки 

 
Александр1   (2004-02-26 14:20) [0]

Здравствуйте уважаемые мастера!!!!!!!!!!!
Как при помощи компанентов WordApplication и WordDocument отправить созданный документ Word на печать. Вернее создавать я его умею (записывать строчки, строить таблицы). А как его заставть печататься на принтере я незнаю.


 
SPIRIT ©   (2004-02-26 14:54) [1]

"это" соединиться с вордом, откроет файл, вызовет диалог печати :

uses ComObj;
var W:variant;
Function CreateWord:boolean;
begin
CreateWord:=true;
try
W:=CreateOleObject("Word.Application");
except
CreateWord:=false;
end;
End;

Function OpenDoc (file_:string):boolean;
Var Doc_:variant;
begin
OpenDoc:=true;
try
Doc_:=W.Documents;
Doc_.Open(file_);
except
OpenDoc:=false;
end;
End;

Function PrintDialogWord:boolean;
Const wdDialogFilePrint=88;
begin
PrintDialogWord:=true;
try
W.Dialogs.Item(wdDialogFilePrint).Show;
except
PrintDialogWord:=false;
end;
End;


 
Александр1   (2004-02-26 16:53) [2]

Простите меня за глупые вопросы я ещё учусь.
SPIRIT Твой пример хорошь, но мне надо при помощи компанента у меня написана огромная прога с использование Word
и я нехочу её переделывать. Мне просто надо заствавить word печатать автоматом!!!!

WordApp := WordApp.Create(nil);
WordApp.Visible := true;
Template := "Normal";
OpenAsTemplate := false;
WordApp.Documents.Add(Template, OpenAsTemplate);
WordDoc1.ConnectKind := ckAttachToInterface;
WordDoc1.ConnectTo(WordApp.ActiveDocument);

Template := WordDoc1.Range;

WordDoc1.Paragraphs.Add(Template); {Добавляю параграф}

WordDoc1.Paragraphs.Item(4).Range.InsertBefore("Текст который я хочу видеть на листе");

И т.д можно добавть таблицу или ещё че-нибуть.
..........................................

WordDoc1.печать...... как напечатать документ

А да!!!! Кстати как у меня почему-то вот этот алгоритм выполняется только один раз. Когда я нажимаю повторно кнопку, то
он пишет ошибку и не хочет открывать WORD. Наерно в этом алгоритме нехватает какова-нибуть закрытия
(разрыва соединения с word или как???????????????????)


 
Alex*   (2004-02-26 17:13) [3]


> Александр1 (26.02.04 16:53) [2]


> А да!!!! Кстати как у меня почему-то вот этот алгоритм выполняется
> только один раз. Когда я нажимаю повторно кнопку, то
> он пишет ошибку и не хочет открывать WORD. Наерно в этом
> алгоритме нехватает какова-нибуть закрытия
> (разрыва соединения с word или как???????????????????)

Обнули
try
.......
finally
WordDoc1 := NIL;
end; //try

Это должно помочь


 
Alex*   (2004-02-26 17:16) [4]


> Александр1 (26.02.04 16:53) [2]

Если решиш проблему с принтером скинь на мой e-mail у меня таже проблема с Excelem


 
Александр1   (2004-02-26 18:30) [5]

Alex* ХОРОШО скину!


 
Alex*   (2004-02-27 10:10) [6]


> Александр1 (26.02.04 18:30) [5]

Покопался с Факе и вот, что нашел
unit InWord;
interface
uses
... ComCtrls; // Delphi3
... OLEAuto; // Delphi2
[skip]
procedure TPrintForm.MPrintClick(Sender: TObject);
var W: Variant;
S: String;
begin
S:=IntToStr(Num);
try // А вдруг где ошибка :)
W:=CreateOleObject("Word.Basic");
// Создаем документ по шаблону MyWordDot
// с указанием пути если он не в папке шаблонов Word
W.FileNew(Template:="C:\MyPath\DB\MyWordDot",NewTemplate:=0);
// Отключение фоновой печати (на LJ5L без этого был пустой лист)
W.ToolsOptionsPrint(Background:=0);

// Переходим к закладке Word"a "Num"
W.EditGoto("Num"); W.Insert(S);
//Сохранение
W.FileSaveAs("C:\MayPath\Reports\MyReport")
W.FilePrint(NumCopies:="2"); // Печать 2-х копий
finally
W.ToolsOptionsPrint(Background:=1);
W:=UnAssigned;
end;
end;
{.....}

=== Cut Конец примера ===
Это пример для Delphi 2 и 3 если полусится переделать под твой нужды расскажи как. У меня с Excelem не получилось


 
Александр1   (2004-02-27 14:49) [7]

Alex* Если время найду, то покапаю. А так то вообще-то шибко некогда. Учёба курсовые.


 
Александр1   (2004-02-27 18:25) [8]

Ну так чё так никто и не знает как заставить Word печатать документы из программы?????????????????


 
Тимохов ©   (2004-02-27 18:31) [9]

ActiveDocument.PrintOut


 
Александр1   (2004-02-27 20:39) [10]

Тимохов - Спасибо большое работает!!!!!!!!!!


 
Александр1   (2004-02-27 20:41) [11]

А да!!!! Кстати как у меня почему-то вот этот алгоритм выполняется только один раз. Когда я нажимаю повторно кнопку, то
он пишет ошибку и не хочет открывать WORD. Наерно в этом алгоритме нехватает какова-нибуть закрытия
(разрыва соединения с word или как???????????????????)



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
14-43877
ИМХО
2004-02-20 05:06
2004.03.14
По ночам сайт определенно в дауне


1-43584
Kraft
2004-02-25 14:49
2004.03.14
Как запретить горячие клавиши


1-43534
AGN
2004-03-04 09:23
2004.03.14
Зацикливаем TControl


14-43866
Verg
2004-02-21 12:43
2004.03.14
Machine Head - это драйв!


14-43765
хз
2004-02-13 10:48
2004.03.14
Хакеры опубликовали исходный код Windows в интернете