كيفية تصدير وحفظ مستندات Word في .NET

كيفية تصدير وحفظ مستندات Word في .NET

هذا الدليل يوضح كيفية تصدير وحفظ مستند Word باستخدام Aspose.Words FOSS لـ .NET: الحفظ بصيغة مستنتجة أو صريحة، تكوين خيارات حفظ OOXML، التصدير إلى Markdown، التصدير إلى نص عادي، واكتشاف صيغة الملف قبل تحويله. Aspose.Words FOSS لـ .NET متاح عبر NuGet أو عن طريق بناءه من المصدر.

دليل خطوة بخطوة

الخطوة 1: احصل على المكتبة

استنسخ المستودع وقم بالبناء Aspose.Words.sln في تكوين Release، ثم أضف إشارة مشروع إلى Aspose.Words.csproj من مشروعك الخاص .NET، كما هو موصوف في الـ دليل التثبيت. أضف using Aspose.Words; في أعلى أي ملف يحفظ المستندات.


الخطوة 2: احفظ بصيغة مستنتجة أو صريحة

Document.Save(fileName) يستنتج صيغة الهدف من امتداد الملف. Save(fileName, saveFormat) يجعل الصيغة صريحة بغض النظر عن الامتداد عن طريق أخذ قيمة تعداد SaveFormat، وSave(fileName, saveOptions) (أو التحميلات المطابقة لـ Stream) يأخذ فئة فرعية SaveOptions للتحكم الخاص بالصيغ. SaveOptions.CreateSaveOptions(saveFormat) هو مصنع ثابت يُعيد الفئة الفرعية للخيارات المطابقة مع إعداداتها الافتراضية مسبقًا لِـ SaveFormat المحدد. هذا الإصدار يحفظ بالكامل إلى ومن DOCX، DOCM، DOTX، DOTM، وFlat OPC (بالإضافة إلى متغيراتها الممكّنة للماكرو والقوالب)، وكذلك Markdown والنص العادي.


الخطوة 3: تهيئة خيارات تصدير OOXML

OoxmlSaveOptions يكوّن حفظًا إلى أي من متغيّرات Open XML. الخاصية SaveFormat تختار DOCX, DOCM, DOTX, DOTM، أو Flat OPC بشكل محدد؛ Password يحدد كلمة مرور مفتوحة للملف المحفوظ، مستقلة عن قيود التحرير الخاصة بـ Document.Protect؛ Compliance يختار مستوى صرامة OOXML؛ و CompressionLevel / Zip64Mode يتحكمان في حزم ZIP الأساسية. أنشئ واحدًا باستخدام new OoxmlSaveOptions(saveFormat) أو عبر SaveOptions.CreateSaveOptions(saveFormat).


الخطوة 4: تصدير إلى Markdown

MarkdownSaveOptions يتحكم في تصدير Markdown: ListExportMode و LinkExportMode يحددان كيفية عرض القوائم والروابط التشعبية، ImagesFolder / ImagesFolderAlias يتحكمان في مكان وضع الصور المستخرجة وكيفية الإشارة إليها، ExportImagesAsBase64 يدمجها داخل النص بدلاً من كتابة ملفات منفصلة، و TableContentAlignment يؤثر على ترميز الجداول المُنشأ. مرّر مثيل MarkdownSaveOptions إلى Document.Save(fileName, saveOptions) مع اسم ملف .md، أو عيّن SaveFormat الخاص به صراحةً.


الخطوة 5: تصدير إلى نص عادي

TxtSaveOptions (عبر قاعدته المشتركة TxtSaveOptionsBase، المستخدمة أيضًا من قبل MarkdownSaveOptions) يتحكم في تصدير النص العادي: Encoding يحدد ترميز الأحرف، ParagraphBreak يحدد سلسلة نهاية السطر، MaxCharactersPerLine يلفّ الأسطر الطويلة، SimplifyListLabels يُطبع نقاط القوائم والأرقام إلى أحرف عادية، و PreserveTableLayout يحافظ على محاذاة أعمدة الجداول باستخدام المسافات.


الخطوة 6: اكتشاف الصيغة قبل التحويل

قبل تحويل ملف بصيغة غير معروفة، FileFormatUtil.DetectFileFormat(fileName) يُعيد FileFormatInfo يحتوي على LoadFormat المكتشف. قم بزوجه مع FileFormatUtil.LoadFormatToSaveFormat(loadFormat) للتحقق مما إذا كانت تلك الصيغة يمكنها المرور ذهابًا وإيابًا عبر الصيغ المدعومة في هذا الإصدار قبل استدعاء Document.Save. بعض الأعضاء SaveFormat في تعداد موجودين من أجل اكتمال API لكن النسخة المفتوحة المصدر المخفضة لا تنفّذ قارئًا أو كاتبًا عمليًا لها؛ التزم بعائلة DOCX/DOCM/DOTX/DOTM/Flat OPC بالإضافة إلى Markdown والنص العادي للحصول على مخرجات موثوقة.

المشكلات الشائعة والحلول

Save(fileName) يكتب الصيغة الخاطئة. امتداد الملف لا يتطابق مع الصيغة المقصودة. استخدم Save(fileName, saveFormat) or Save(fileName, saveOptions) لجعل الصيغة صريحة بدلاً من الاعتماد على الامتداد.

ملف OOXML المحفوظ لن يفتح باستخدام كلمة مرور. OoxmlSaveOptions.Password لم يتم تعيينه قبل الحفظ. أنشئ OoxmlSaveOptions، عيّن Password، ومرره إلى Save.

تصدير Markdown يوزّع ملفات الصور بشكل غير متوقع. Default MarkdownSaveOptions السلوك يستخرج الصور إلى ملفات منفصلة. عيّن ExportImagesAsBase64 = true لملف Markdown واحد متكامل، أو عيّن ImagesFolder للتحكم في مكان وضع الصور.

تصدير النص العادي يفقد محاذاة أعمدة الجدول. TxtSaveOptions.PreserveTableLayout يبقى على الإعداد الافتراضي. اضبط PreserveTableLayout = true قبل الحفظ.

الأسئلة المتكررة

كيف يمكنني الحفظ إلى تنسيق محدد بغض النظر عن امتداد الملف؟

استدعِ Save(fileName, saveFormat) بقيمة SaveFormat صريحة، أو Save(fileName, saveOptions) مع فئة فرعية SaveOptions مطابقة.

ما الصيغ التي تدعم التحويل ذهابًا وإيابًا في هذا الإصدار؟

DOCX، DOCM، DOTX، DOTM، Flat OPC (بالإضافة إلى إصداراتها المُمكّنة للماكرو والقوالب)، Markdown، والنص العادي.

كيف يمكنني حماية ملف محفوظ بكلمة مرور بحيث لا يمكن حتى فتحه؟

قم بتعيين Password على كائن OoxmlSaveOptions ومرره إلى Document.Save(fileName, saveOptions).

كيف يمكنني التحكم في نهايات الأسطر في ملف نصي مُصدَّر؟

قم بتعيين ParagraphBreak على كائن TxtSaveOptions قبل الحفظ.

كيف يمكنني التحقق من صيغة الملف قبل تحويله؟

استدعِ FileFormatUtil.DetectFileFormat(fileName) واقرأ FileFormatInfo.LoadFormat التي تم إرجاعها.

انظر أيضاً

 العربية