نمایش فایل Word در برنامه‌های WPF با سی‌شارپ


در دنیای توسعه نرم‌افزار، یکی از چالش‌هایی که برنامه‌نویسان با آن روبرو هستند، نمایش و مدیریت فایل‌های Word در برنامه‌های ویندوزی است. این نیاز، در بسیاری از پروژه‌ها احساس می‌شود، چه در اپلیکیشن‌های مدیریتی، چه در سیستم‌های آموزشی یا در برنامه‌های سازمانی. در اینجا قصد داریم به صورت کامل و جامع، نمونه سورس کد مربوط به نمایش فایل Word در پروژه‌ی WPF سی‌شارپ را بررسی کنیم و نکاتی مهم و کاربردی را در این زمینه بیان کنیم.
مقدمه‌ای بر نمایش فایل Word در WPF
در محیط WPF، چندین روش برای نمایش فایل‌های Word وجود دارد، اما مهم‌ترین و رایج‌ترین روش، استفاده از کنترل‌های استاندارد و یا کتابخانه‌های جانبی است که قابلیت فراخوانی و نمایش فایل‌های Word را دارند. یکی از روش‌های محبوب، بهره‌گیری از کنترل WebBrowser است که به صورت پیش‌فرض در WPF موجود است و می‌تواند فایل‌های HTML، PDF، و حتی فایل‌های Word را به نمایش بگذارد، البته با محدودیت‌هایی.
روش دیگر، استفاده از کتابخانه‌های خارجی مانند Microsoft Office Interop، و یا کتابخانه‌های آزاد و متن‌باز مانند Open XML SDK است. این کتابخانه‌ها، امکانات بیشتری ارائه می‌دهند، اما در عین حال نیازمند نصب نرم‌افزارهای وابسته و یا تنظیمات خاص هستند که ممکن است فرآیند توسعه را کمی پیچیده‌تر کنند. در ادامه، تمرکز بر روی نمونه کد ساده و قابل فهم است که بتواند فایل Word را در پنل WPF به خوبی نمایش دهد.
استفاده از کنترل WebBrowser برای نمایش فایل Word
در این روش، فایل Word ابتدا باید به صورت فایل HTML یا PDF تبدیل شود، زیرا کنترل WebBrowser به طور مستقیم فایل‌های Word را نمایش نمی‌دهد. بنابراین، ابتدا باید فایل Word را به HTML تبدیل کنیم، سپس آن را در کنترل WebBrowser قرار دهیم. این فرآیند، نیازمند استفاده از کتابخانه‌های خارجی یا روش‌های تبدیل است.
نمونه کد ساده برای این کار:
csharp  

// فرض بر این است که فایل Word در مسیر مشخصی قرار دارد

string wordFilePath = @"C:\Files\Sample.docx";
// ابتدا باید فایل Word را به HTML تبدیل کنیم

// یکی از روش‌های معمول، استفاده از Microsoft.Office.Interop.Word است
using Microsoft.Office.Interop.Word;
Application wordApp = new Application();

Document doc = null;
try

{

object missing = System.Reflection.Missing.Value;

object readOnly = true;

object isVisible = false;
wordApp.Visible = false;

doc = wordApp.Documents.Open(wordFilePath, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

string htmlFilePath = @"C:\Temp\Converted.html";
// ذخیره فایل به صورت HTML

doc.SaveAs2(htmlFilePath, WdSaveFormat.wdFormatFilteredHTML);

}

catch (Exception ex)

{

MessageBox.Show("خطا در تبدیل فایل: " + ex.Message);

}

finally

{

if (doc != null)

doc.Close();

wordApp.Quit();

}


در این کد، ابتدا فایل Word باز می‌شود، سپس به صورت HTML ذخیره می‌شود. حال، می‌توان فایل HTML تولید شده را در کنترل WebBrowser بارگذاری کرد:
csharp  

// فرض بر این است که کنترل WebBrowser در XAML به نام webBrowser قرار دارد

webBrowser.Navigate(new Uri(@"C:\Temp\Converted.h... ← ادامه مطلب در magicfile.ir