有没有把Rtf文件转换成图像的现成控件呀?(100分)

  • 主题发起人 主题发起人 Oldtiger
  • 开始时间 开始时间
O

Oldtiger

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要把用rxrichedit生成的.rtf文件转换成图像
图像的格式可以是tif、Bmp、Pcx不限
 
刚刚在论坛上讨论过的,不过不是控件,下面是那里面给出的源代码,供参考
RICHEDIT-->BMP的方法
uses RichEdit;
procedure TForm1.Button1Click(Sender: TObject);
var
Range: TFormatRange;
LastChar, MaxLen, LogX, LogY: Integer;
begin
FillChar(Range, SizeOf(TFormatRange), 0);
with Image1, Range do
begin
LogX := GetDeviceCaps(Canvas.Handle, LOGPIXELSX);
LogY := GetDeviceCaps(Canvas.Handle, LOGPIXELSY);
hdc := Canvas.Handle;
hdcTarget := hdc;
rc.right := Image1.ClientWidth * 1440 div LogX;
rc.bottom := Image1.ClientHeight * 1440 div LogY;
rcPage := rc;
LastChar := 0;
MaxLen := GetTextLen;
chrg.cpMax := -1;
repeat
chrg.cpMin := LastChar;
LastChar := SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 1,
Longint(@Range));
until (LastChar >= MaxLen) or (LastChar = -1);
end;
SendMessage(RichEdit1.Handle, EM_FORMATRANGE, 0, 0);
Image1.Refresh;
end;
 
这样也行啊,我晚上试试看
 
如何知道Richtext变成图像需要的实际高度?
 
如果想得到Richtext内容的完整图象,如何设置Image的宽度和高度。
 
to yzhshi,
首先谢谢你的帮助!
但在用你的程序转换Rtf时,只能转换rtf中的文本
rtf中的图像转换不出来,为什么?
我现在还没弄明白你的程序的转换原理,笨呀!
 
改用RxRichEdit控件,我已实现,效果不错。
 
我也是用rxrichedit呀!
可是图形就转不出来!
 
加上:
Image1.height:=RxRichEdit1.height;
Image1.width:=RxRichEdit1.width-12;
试试。
 
to yzhshi、linsb:
谢谢你们!现在我已经基本调试成功了
并且写成了一个ActiveX控件
但是我还是出现了Linsb提出的问题,希望你们能够做答!
〉〉来自:linsb, 时间:2002-5-28 13:40:00, ID:1128636
〉〉如果想得到Richtext内容的完整图象,如何设置Image的宽度和高度??
用Linsb的办法是不行的
〉〉来自:linsb, 时间:2002-6-5 0:13:00, ID:1143596
〉〉加上:
〉〉Image1.height:=RxRichEdit1.height;
〉〉Image1.width:=RxRichEdit1.width-12;


晚些我将把控件源码贴出来!
 
〉〉如果想得到Richtext内容的完整图象,如何设置Image的宽度和高度??
如果RxRichEdit中含有图象无确定Image的宽度和高度,
如果这个问题不解决的好,其应用要受到限制,欢迎大家想办法。
加上:
〉〉Image1.height:=RxRichEdit1.height;
〉〉Image1.width:=RxRichEdit1.width-12;
只是在RxRichEdit1的宽和高正好能完整的显示格式文本内容才可以。
 
后退
顶部