Autor Beitrag
MoreThanWords
Hält's aus hier
Beiträge: 16



BeitragVerfasst: Mo 10.03.03 18:26 
Hallihallo

Mit folgendem Code kann ich ein Dokument einfügen:

ausblenden Quelltext
1:
2:
WordApplication.Selection.InsertBreak(wdPageBreak);
                           WordApplication.Selection.InsertFile(SFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam);


Hat nun jemand einen Ahnung wie man es schafft, dass die Formatierungen des eingefügten Dokumentes mitübernommen werden?

Beispiel:
Das Originaldokument hat einen linken Rand von 2cm
Das eingefügte Dokument aber nur 1cm

Wäre über Lösungsvorschläge sehr dankbar, da die Dokumentationen, die ich über die TWordApplication gefunden habe leider nicht sehr umfangreich sind.
berni
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 10.03.03 19:08 
Hi,
wem sagst Du das *g* - siehe meinen Tread von heute ...

Ich glaube Dein Anliegen wird nicht hinhauen, da meines
Wissens die Einstellung des Hauptdokumentes gilt und dann
alles andere umformatiert wird.
Aber ich bin auch kein Word GURU, ich muss das leider
in Delphi auch nur vergewaltigen ;-)

Gruss,
Bernd
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mo 10.03.03 22:44 
Hallo

ich würd das einzufügende Dok erstmal öffnen und die pagesetup eigenschaft auslesen und die dann auf das andere Dok übertragen
kleines Beipiel:
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
procedure TForm1.Button1Click(Sender: TObject);
var s:olevariant;
begin
  s:='c:\test.doc';
  with WordApplication1 do
    begin                         
      //neues Dokument
      WordDocument2.connectto(Documents.Add(emptyparam,emptyparam));
      //einzufügendes Document öffnen
      WordDocument1.ConnectTo(Documents.open(s,
                              Emptyparam,Emptyparam,Emptyparam,Emptyparam,
                              Emptyparam,Emptyparam,Emptyparam,Emptyparam,
                              Emptyparam));
      //Einstellungen holen und setzen
      //worddocument2.PageSetup:= worddocument1.PageSetup geht leider nich, keine ahnung wieso nicht, kannst aber auch alles einzeln setzten
      worddocument2.PageSetup.LeftMargin  := WordDocument1.PageSetup.LeftMargin;
      worddocument2.PageSetup.topMargin   := WordDocument1.PageSetup.topMargin;
      worddocument2.PageSetup.RightMargin := WordDocument1.PageSetup.rightMargin;
      worddocument2.PageSetup.bottomMargin:= WordDocument1.PageSetup.bottomMargin;
      worddocument2.PageSetup.PageWidth   := WordDocument1.PageSetup.PageWidth;
      worddocument2.PageSetup.PageHeight  := WordDocument1.PageSetup.PageHeight;
      //...restliche eigenschaften

      //doc wieder schliesen
      WordDocument1.Close;
      WordDocument1.Disconnect;

      //Dok wieder in Vordergrund holen und datei einfügen
      WordDocument2.Activate;
      Selection.InsertFile(s,emptyparam,emptyparam,emptyparam,emptyparam);
      WordDocument2.Disconnect;

    end;
end;

hier werden die pagesetupEinstellungen komplett übernommen. wenn du das nur für den einzufügenden Text haben willst, mußt dus ändern. Zeichne ein Word makro auf und gugg wie es Word macht.

andre idee hab ich erstmal keine

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
MoreThanWords Threadstarter
Hält's aus hier
Beiträge: 16



BeitragVerfasst: Di 11.03.03 11:26 
Danke erstmal für die Vorschläge.