Link to home
Start Free TrialLog in
Avatar of third
thirdFlag for Philippines

asked on

convert word doc to image/picture format

hi all,

  does anyone knows how to convert a word document into an image format (i.e. bmp/jpg/gif) using delphi? please post working codes if you know how. thanks!

i'll increase the points when necessary.
Avatar of Manuel Lopez-Michelone
Manuel Lopez-Michelone
Flag of Mexico image

listening...
Hi Third,

I was thinking in your problem and I found these results:

I dont think its possible to copy to Delphi every picture in a Word document automatically. The problem is the way Word Basic (the last instance command language for MsWord), handles a cut/copy of a picture on a document. Word assigns a name "picture 2", "picture 9" in some random way that I cant figure out how it works. I didnt find the proper generic automated function to use it with OLE.

Nevertheless, if you have lots of pictures in a Word document and want them in BMP format, for example, try this code (tested in Delphi 5):

Put an Image object, a save dialog, and a button.

Then try:

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Clipboard.HasFormat(CF_Picture) then     { is there a bitmap on the Clipboard? }
 begin
   Image1.Picture.Assign(Clipboard);
 end;
  SaveDialog1.Execute;
  if SaveDialog1.FileName <> '' then
   Image1.Picture.SaveToFile(SaveDialog1.FileName);
end;


So I used the next procedure: I executed MsWord and load a document with images. Then, I clicked on right mouse button over an image and cut/copy the image selected in document. Changed the focus to my delphi application and clicked the button to load the image and save it as a bmp file.

Hope this helps.
best regards,
Manuel Lopez (lopem)
Third,

Sorry, I forgot few more details... First, use the clipbrd unit in your uses clauses and second, I didnt read your question carefully. You want to make a document an image, right? well  the only way I can think to do that is to click on MsWord preview and copy the content of the display to the clipboard. This way you can make every page of a document a bmp file using the code presented in my last message.

(A better solution is to use Adobe Acrobat Distiller to create a PDF file of the document).

best wishes
Manuel Lopez (lopem)
Avatar of third

ASKER


hi, could you show me working codes on how to convert a word doc to pdf? also, kindly specify what components i need to import to produce one. thanks...
ASKER CERTIFIED SOLUTION
Avatar of Manuel Lopez-Michelone
Manuel Lopez-Michelone
Flag of Mexico image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of MBo
MBo

I used RXRichEdit from RXLib because it can show pictures.
Save Word document as RTF.

uses ...richedit;

procedure TForm1.Button1Click(Sender: TObject);
var b:tbitmap;
  fr: TFormatRange;
  r: TRect;
begin
rxrichedit1.Lines.LoadFromFile('e:\wwe.rtf');
b:=tbitmap.create;
b.width:=rxrichedit1.width;
b.height:=rxrichedit1.height;
r:=rect(0,0,RXRichEdit1.Width*screen.Pixelsperinch,
                    RXRichEdit1.Height*screen.Pixelsperinch);
fr.hdc:=b.Canvas.handle;
fr.hdctarget:=b.Canvas.handle;
fr.rc:=r;
fr.rcpage:=r;
fr.chrg.cpMin:=0;
fr.chrg.cpMax:=-1;
Sendmessage(RXRichEdit1.handle,EM_FORMATRANGE,1,longint(@fr));
image1.Picture.assign(b);//just to control
b.savetofile('e:\wwe.bmp');
b.free;
end;
Avatar of third

ASKER

MBo,

the document need not support pictures (only formatted texts) in the document so i just used richedit on my testing. your code works but it only save what is currently visible in the richedit component. is it possible to do a per page saving?
To produce a pdf file, you can get the PDF Converter from www.amyuni.com that can do the job without even using components