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.
LVL 30
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Manuel Lopez-MichelonePhD candidateCommented:
Manuel Lopez-MichelonePhD candidateCommented:
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);
 if Clipboard.HasFormat(CF_Picture) then     { is there a bitmap on the Clipboard? }
  if SaveDialog1.FileName <> '' then

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)
Manuel Lopez-MichelonePhD candidateCommented:

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)
OWASP: Avoiding Hacker Tricks

Learn to build secure applications from the mindset of the hacker and avoid being exploited.

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...
Manuel Lopez-MichelonePhD candidateCommented:
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:

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


or a commercial one:

best regards.
Manuel Lopez (lopem)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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;
image1.Picture.assign(b);//just to control
thirdAuthor Commented:

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 that can do the job without even using components
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.