Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 843
  • Last Modified:

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.
0
third
Asked:
third
1 Solution
 
lopemCommented:
listening...
0
 
lopemCommented:
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)
0
 
lopemCommented:
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)
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
thirdAuthor Commented:

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...
0
 
lopemCommented:
Converting a document to PDF is not an easy task. You need at least a component or Adobe Distiller to do that. Distiller software is expensive (I guess around 500 dlls)...  Anyway, I dont think you can find any free component to such that task but take a look to these sites:

http://www.synactis.com/products/pdf_delphi.htm

 
                 Nishita's PDF Creation VCL v.2.0  
                 PowerPdf v.0.9 beta  
                 PasPDF v.0.943  

at    http://www.torry.net/index.htm

or a commercial one: http://www.wptools.de/html/wpdf.htm

best regards.
Manuel Lopez (lopem)
0
 
MBoCommented:
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;
0
 
thirdAuthor Commented:
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?
0
 
hrabih75Commented:
To produce a pdf file, you can get the PDF Converter from www.amyuni.com that can do the job without even using components
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now