现在在用的转换代码:速度慢.word文件大的时候,多页的时候速度很慢.
docBack := ExtractFileName(wordfile);
docback:='@@@'+docback;
docback:=ExtractFilePath(Application.ExeName)+docback;
copyfile(pchar(wordfile),pchar(docback),false);
image:=timage.Create(nil);
BitMap := TBitMap.Create;
outbmp := TBitmap.Create;
bitmap.Width:=screenwidth;
bitmap.Height:=0;
filecount:=1;
Clipboard.Clear;
try
WordApp := CreateOleObject('Word.Application');
except
showmessage('系统没有装入WORD程序!');
fcount := 0;
result:=nil;
exit;
end;
if wordstyle then
begin
Clipboard.Clear;
WordApp.Documents.Open(FileName:=docback, ReadOnly:=false);
Wordapp.ActiveDocument.PageSetup.LeftMargin :=0;
Wordapp.ActiveDocument.PageSetup.rightMargin :=0;
If Wordapp.ActiveWindow.View.SplitSpecial = wdPaneNone Then
Wordapp.ActiveWindow.ActivePane.View.Type := wdPrintView
Else
Wordapp.ActiveWindow.View.Type := wdPrintView;
try
Wordapp.activeDocument.PageSetup.PageWidth:=screenwidth * 0.75;
except
Wordapp.activeDocument.PageSetup.PageWidth:=48;
end;
n:=wordapp.Selection.Information[wdNumberOfPagesInDocument];
// 防止有些word中的图片不能调出来。
Wordapp.ActiveDocument.PrintPreview;
Wordapp.ActiveDocument.ClosePrintPreview;
Wordapp.visible:=false;
WordApp.ActiveDocument.Content.Select;
WordApp.ActiveDocument.Content.Copy;
rep:=0; // 减少读取时间
repeat // 减少读取时间
sleep(1); // 减少读取时间
inc(rep); // 减少读取时间
until (Clipboard.HasFormat(CF_PICTURE)) or (rep=200) ;// 减少读取时间
if Clipboard.HasFormat(CF_PICTURE) then
Image.Picture.Assign(Clipboard);