Solved

convert word doc to image/picture format

Posted on 2002-06-28
8
772 Views
Last Modified: 2010-04-04
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
Comment
Question by:third
8 Comments
 
LVL 3

Expert Comment

by:lopem
ID: 7116667
listening...
0
 
LVL 3

Expert Comment

by:lopem
ID: 7117440
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
 
LVL 3

Expert Comment

by:lopem
ID: 7117455
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
 
LVL 30

Author Comment

by:third
ID: 7121037

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
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 
LVL 3

Accepted Solution

by:
lopem earned 150 total points
ID: 7122426
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
 
LVL 1

Expert Comment

by:MBo
ID: 7123710
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
 
LVL 30

Author Comment

by:third
ID: 7139680
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
 

Expert Comment

by:hrabih75
ID: 7540706
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

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Suggested Solutions

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now