Autor Beitrag
hildebra
Hält's aus hier
Beiträge: 2

WIN 2000, WIN XP
Delphi 4
BeitragVerfasst: Fr 01.06.07 10:45 
Hallo!

Kann mir jemand helfen.

Wie kann ich Delphi 4 dazu bringen nur eine bestimmte Seite eines Word Dokumentes zu drucken? Welche Parameter muss ich übergeben?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Bisher klappt es nur für den Druck des kompletten Dokuments.

Programm siehe wie folgt

         WordApp:=CreateOleObject('word.Application');
  WordApp.Documents.Open(FileName := 'c:\temp\test.doc');
  WordApp.Visible:= False;
  WordApp.ActiveDocument.FormFields.Item('Text1').Result := 'Test';
  WordApp.ActiveDocument.PrintOut(False);
  WordApp.Quit(False);

 // Start von Makros
 //  WordApp.Run('Drucken');


Besten Dank

Stephan

Moderiert von user profile iconUGrohne: Beitragsformatierung überarbeitet.
arj
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 378

Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
BeitragVerfasst: Sa 02.06.07 07:37 
Zeichne doch mal ein VB-Makro auf indem du nur eine bestimmte Seite druckst und schau dir den VB-Source an.
Den kannst du dann übertragen. So mach ichs immer.
hildebra Threadstarter
Hält's aus hier
Beiträge: 2

WIN 2000, WIN XP
Delphi 4
BeitragVerfasst: Fr 15.06.07 09:42 
Titel: Import der Word Typenbibliothek bringt Lösung
Hallo und Danke!

Nachdem ich nun heute das Buch von Andreas Kosch "Com /DCOM" erhalten habe, brachte der Inport der Typenbibliothek die Wende!

Als erstes die Microsoft Word Typenbibliothek (Microsoft Word 9.0 Object Library) im Menü unter "Projekt/Typenbibliothek importieren" laden.
Es wir im aktuellen Project eine Unit "Word_TLB" angehängt. Diese muss in der Uses Clausel noch referenziert werden.

Nun hat man Zugriff auf alle Variablen, Procedures etc. der Word Komponente.

Jetzt kann man dem Range Object ( 3ter Parameter im Aufruf der PrintOut Procedure) den Wert "wdPrintRangeOfPages" zuweisen.

wordApp.PrintOut(EmptyParam, EmptyParam, wdprintrangeofpages, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 1, '5');

PS: Die weiteren optionalen Parameter (insgesamt hat das Object 15 Stück) hinter Pages habe ich jetzt nicht mehr als EmptyParam definiert.

Damit klappts!

Kosch sein Dank!!!

Gruß Stephan