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
 
Meta777

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

Re: Microsoft Word

  Alt 24. Aug 2005, 10: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
 


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 15:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz