AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Microsoft Word

Offene Frage von "spacewolf"
Ein Thema von spacewolf · begonnen am 18. Aug 2005 · letzter Beitrag vom 24. Aug 2005
Antwort Antwort
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#1

Microsoft Word

  Alt 18. Aug 2005, 17:21
Da Word keine PDF Export Routine mit anbietet, dachte ich das JPGs / BMPs
ja auch ausreichen um Dokumente für alle lesbar erzeugen zu können.

Das klappt auch ganz gut mit:

Document.Content.CopyAsPicture; aber leider nur die erste Seite...

Dachte dann das geht vielleicht übers Range mit:

Document.Range.CopyAsPicture; aber auch hier kopiert er nur die erste Seite ins ClipBoard.
Weis jemand wie man alle Seiten kopiert ?

euer Andreas
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Microsoft Word

  Alt 18. Aug 2005, 18:32
Hallo Andreas,

beim Thema Dokumenten-Management würde ich keinen leichtfertigen Bogen um PDF machen. MS Word - so leid es mir persönlich tut das sagen zu müssen - kann nachgerüstet werden um diese Funktionalität zu bieten.

Aber zu deinem konkreten Problem - geht das nicht?

Code:
with Document.ActiveWindow.Panes[1].Pages.Item[5].Range do begin
  Select;
  CopyAsPicture;
end;
Kann es leider nicht ausprobieren, da ich vor einer Maschine ohne MS Word sitze, aber wenn es funktioniert, dann müsstest du ja nur noch eine Schleife drum wickeln.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#3

Re: Microsoft Word

  Alt 19. Aug 2005, 12:40
was sind Panes[1] ?

wie so das 5. Item ? von Pages ?

Panes[1].Pages. gibts nicht...


PS: Nachricht an die Admins... sorry wollte das hier eigendlich ins API Forum stellen... könnt ihr das verschieben !!!
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Benutzerbild von spacewolf
spacewolf

Registriert seit: 24. Apr 2003
Ort: Magdeburg
218 Beiträge
 
Delphi 7 Professional
 
#4

das funzt auch nicht...

  Alt 19. Aug 2005, 13:14
jetzt hab ichs mal mit ner anderen Weise probiert:
Delphi-Quellcode:
         Document.Content.Select;
         with WordApplication.Selection do CopyAsPicture; :gruebel:
das geht auch nicht...

grummel

PS: vielleicht muss ichs ja seitenweise abspeichern...
würde ich auch machen doch wie sage ich dann:
Document.[b]???Seite??[/b].CopyAsPicture Und wie frage ich wieviel Seiten ?
 Document.[b]Seitenanzahl[/b]
Andreas Göllner
("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
"Ich kann Dir nur die Tür zeigen, durchgehen musst Du ganz allein."
Wer ist die Tür? Jesus!
  Mit Zitat antworten Zitat
Benutzerbild von Kara
Kara

Registriert seit: 2. Aug 2005
113 Beiträge
 
#5

Re: Microsoft Word

  Alt 19. Aug 2005, 13:22
Du könntest die Überschrift ein bischen genauer fassen, damit aus der hervor geht, um welches Thema es sich handelt.
Danke
--- yesterday is gone, tomorrow has not yet come, we have only today. let us begin. ---
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Microsoft Word

  Alt 20. Aug 2005, 08:10
Zitat von spacewolf:
was sind Panes[1] ?
Ich denke du willst die einzelnen Seiten als Bilder haben? Jedes Document wird in einem Window dargestellt. Ein Window besteht aus einem oder mehreren Panes - die entstehen beim splitten. In einer Pane kannst du dann auf die Pages zugreifen. Die von mir gewählten Indexangaben sind willkürlich.

Besorge dir doch mal die VBA Reference, dann wird vielleicht einiges klarer für dich.

Grüße vom marabu
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Microsoft Word

  Alt 24. Aug 2005, 11:05
Hallo,

hier nun eine mögliche Lösung. Funzt auch soweit. Nur werden Kopf-/Fußzeilen nicht mit gespeichert.
Vielleicht geht das auch einfacher aber es funzt....

Aufgerufen wird die funktion z.B. so:
Delphi-Quellcode:
var
  WordApplication : TWordApplication;
begin
  WordApplication := TWordApplication.Create(Self);
  ...
  SaveDocAsJPG(WordApplication.ActiveDocument, 'C:\');
Delphi-Quellcode:
procedure TForm1.SaveDocAsJPG(Document: _Document; SaveTo: String);
//Bilder werden nummeriert in "SaveTo" abgelegt. Also das erste ist z.B. "C:\1.jpg" wenn SaveTo "C:\" ist
var
  pic: Graphics.TPicture;
  bmp: Graphics.TBitmap;
  jpg: jpeg.TJPEGImage;
  SaveDir: String;
  curPage, i: Integer;
  SelStart, SelEnd: OleVariant;
begin
  try
    pic := TPicture.Create;
    bmp := Graphics.TBitmap.Create;
    jpg := TJPEGImage.Create;
    curPage := 1;
    SelStart := 0;
    SaveDir := IncludeTrailingPathDelimiter(SaveTo);
    try
      for i := 1 to Document.Sentences.Count do begin
        if (Document.Sentences.Item(i).Information[wdActiveEndPageNumber] > curPage) OR
           (i = Document.Sentences.Count) then begin// auch prüfen ob am Ende des Document angekommen! Denn der "Rest" muss auch gespeichert werden
          SelEnd := Document.Sentences.Item(i).End_;//Ende des aktuellen Satzes
          Document.Range(SelStart, SelEnd).CopyAsPicture;//Auswahl kopieren. (MetaFile)
          pic.Assign(Clipboard);// Zwisichenablage dem TPicture zuweisen.

          //Graphic nach TBitmap convertieren (in DP gefunden)
          bmp.PixelFormat := pf24bit;
          bmp.Width := pic.Graphic.Width;
          bmp.Height := pic.Graphic.Height;
          bmp.Canvas.Draw(0,0, pic.Graphic);

          //bmp dem jpg zuweisen und komprimieren und speichern
          jpg.Assign(bmp);
          jpg.CompressionQuality := 90;
          jpg.Compress;
          jpg.SaveToFile(SaveDir+IntToStr(curPage)+'.jpg');
// bmp.SaveToFile('C:\test'+IntToStr(curPage)+'.bmp');//falls das bmp nötig wär...

          Inc(curPage);//nächste Seite
          SelStart := SelEnd;//Auswahlbegin der nächsten Seite ist das Ende der Aktuellen

          //aufräumen
          bmp.Dormant;
          bmp.FreeImage;
          bmp.ReleaseHandle;
        end;
      end;
    finally
      pic.Free;
      bmp.Free;
      jpg.Free;
    end;
  except
    on e:Exception do begin
      ShowMessage('Fehler beim Speichern des Worddokument als Bilddatei!'+
                    #13#10+e.Message+#13#10+e.ClassName)
    end;
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz