PDA

View Full Version : انتقال محتویات یک فایل Word به RichEdit



FirstLine
شنبه 12 خرداد 1386, 10:26 صبح
با سلام
چجوری مشیه با انتخاب یک فایل Word تمام اطلاعات و محتویات آن با حالت و استایل آن(شامل نوع ، سایز و مشخصات فونت و...) در یک RichEdit درج و نمایش داد؟
با تشکر

Mahyaa
شنبه 12 خرداد 1386, 10:34 صبح
میتونید فایل رو با OLE باز کنید ، و به صورت RTF ذخیره کنید و همون فایل رو نمایش بدید .
البته حتما اطلاع دارید که هیچ تضمینی وجود نداره که هر آنچه که شما در Word میتونید ببینید ، در RichEdit هم ببینید (مثلا تصاویر) . دلیلش هم که از اسم خود RTF مشخصه .

FirstLine
شنبه 12 خرداد 1386, 14:25 عصر
با سلام
اگه ممکنه یه مثال هم لطف کنید.
من یه TRichViewEdit روی فرم دارم و میخوام اطلاعات داخل هر فایل Word را با انتخاب فایل ورد در TRichViewEdit نمایش و درج نماید.
با تشکر

vcldeveloper
یک شنبه 13 خرداد 1386, 08:53 صبح
البته حتما اطلاع دارید که هیچ تضمینی وجود نداره که هر آنچه که شما در Word میتونید ببینید ، در RichEdit هم ببینید (مثلا تصاویر) . دلیلش هم که از اسم خود RTF مشخصه .
دلیلش RTF نیست، بلکه پیاده سازی RichEdit در دلفی تمام امکانات RTF ،از جمله ذخیره تصاویر بصورت embeded ، را شامل نمی شود.

Mahyaa
یک شنبه 13 خرداد 1386, 20:37 عصر
با سلام
اگه ممکنه یه مثال هم لطف کنید.
من یه TRichViewEdit روی فرم دارم و میخوام اطلاعات داخل هر فایل Word را با انتخاب فایل ورد در TRichViewEdit نمایش و درج نماید.
با تشکر

با TRichViewEdit آشنایی ندارم ، اگر مشابه TRichEdit باشه ، که برای نمایش RTF مشکلی نداره .

کدش یه چیزی شبیه این میشه که البته به نسبت کاری که میخواهید انجام بدید ، میتونید option های ذخیره فایل رو تغییر بدید . همچنین من مواردی که ممکنه خطاهای مختلفی پیش بیاد ، در این کد در نظر نگرفتم .


uses Variants , ComObj , OleCtnrs , OleServer , WordXP;

procedure TForm2.ConvertDocument(MSWordDoc {Doc} , DestinFileName {RTF} : String);
var
MSWord : Variant;
begin
MSWord := CreateOLEObject('Word.Application');
MSWord.Documents.Open(MSWordDoc , False , True);

MSWord.ActiveDocument.SaveAs(DestinFileName , wdFormatRTF);// ,

MSWord.Quit(False);
MSWord := Unassigned;
end;برای اینکه از Option های بیشتری برای SaveAs و Open استفاده کنید ، Help های مربوط به VBA میتونه کمک کنه .

FirstLine
چهارشنبه 16 خرداد 1386, 15:45 عصر
با سلام
ببخشید این CreateOLEObject را که بخواهیم استفاده کنیم آیا باید یه کامپوننت از لیست کامپوننتهای خود دلفی را انتخاب کنیم؟ یا یه فایلی را یوزز کنیم؟
وقتی کد بالا را مینویسم به عبارت CreateOLEObject ایراد میگیره.
لطفا یه مثال و کد کامل لطف کنید.
با تشکر

vcldeveloper
پنج شنبه 17 خرداد 1386, 08:49 صبح
وقتی کد بالا را مینویسم به عبارت CreateOLEObject ایراد میگیره.
ComObj را به لیست یونیت های uses اضافه کنید.

Mahyaa
پنج شنبه 17 خرداد 1386, 09:50 صبح
پست قبلی رو ویرایش کردم . قسمت Uses رو ببینید .

FirstLine
پنج شنبه 17 خرداد 1386, 13:42 عصر
با سلام
یه مثال یا پروژه که فقط محتویات یک فایل word را داخل richedit بریزه کسی نداره؟
یا مثل فایلهای PDF مربوط به کلاینت دیتاست اگه لطف کنید ممنون میشم.
با تشکر

Mahyaa
پنج شنبه 17 خرداد 1386, 13:49 عصر
مثالی که من زدم ، همین کار رو میکنه دیگه . شما فقط کافیه بعد از اینکه به RTF تبدیل کردید ، بنویسید :


RichEdit.Lines.loadFromFile(fileName);

مشکل چیه ؟

FirstLine
پنج شنبه 17 خرداد 1386, 20:03 عصر
با سلام
خیلی ممنون متشکرم ، مشکل این قسمتم حل شد.

با تشکر