چگونه اسناد Word را در .NET صادر و ذخیره کنیم
این راهنما نشان میدهد چگونه یک سند Word را با Aspose.Words FOSS برای .NET صادر و ذخیره کنیم: ذخیره با فرمت استنتاجشده یا صریح، پیکربندی گزینههای ذخیرهسازی OOXML، صادر کردن به Markdown، صادر کردن به متن ساده، و شناسایی فرمت فایل قبل از تبدیل آن. Aspose.Words FOSS برای .NET از طریق NuGet یا با ساخت از منبع در دسترس است.
راهنمای گام به گام
مرحله ۱: دریافت کتابخانه
مخزن را کلون کنید و بسازید Aspose.Words.sln در پیکربندی Release، سپس یک ارجاع پروژه به Aspose.Words.csproj از پروژه .NET خودتان، همانطور که در راهنمای نصب. افزودن using Aspose.Words; در بالای هر فایلی که اسناد را ذخیره میکند.
مرحله ۲: ذخیره با فرمت استنتاجشده یا صریح
Document.Save(fileName) فرمت هدف را از پسوند فایل استنتاج میکند. Save(fileName, saveFormat) فرمت را صرفنظر از پسوند به صورت صریح تعیین میکند با دریافت یک مقدار enum از نوع SaveFormat، و Save(fileName, saveOptions) (یا overloadهای 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) ترکیب کنید تا بررسی کنید آیا آن قالب میتواند از طریق قالبهای پشتیبانیشده این نسخه بهصورت round-trip عمل کند قبل از فراخوانی Document.Save. برخی اعضای enum SaveFormat برای کاملسازی API وجود دارند اما نام قالبها در این نسخهٔ منبع باز کاهش یافته است و خواننده یا نویسندهٔ کاری برای آنها پیادهسازی نشده؛ برای خروجی قابل اعتماد به خانواده DOCX/DOCM/DOTX/DOTM/Flat OPC بهاضافه Markdown و متن ساده پایبند باشید.
مشکلات رایج و راهحلها
Save(fileName) قالب نادرست را مینویسد. پسوند فایل با قالب مورد نظر مطابقت ندارد. استفاده کنید Save(fileName, saveFormat) or Save(fileName, saveOptions) برای صریح کردن فرمت بهجای وابستگی به پسوند.
فایل OOXML ذخیرهشده با رمز عبور باز نمیشود. OoxmlSaveOptions.Password قبل از ذخیره تنظیم نشده بود. یک … بسازید OoxmlSaveOptions، تنظیم کنید Password، و آن را به Save.
خروجی مارکداون بهطور غیرمنتظره فایلهای تصویر را پراکنده میکند. Default MarkdownSaveOptions این رفتار تصاویر را بهصورت فایلهای جداگانه استخراج میکند. تنظیم کنید ExportImagesAsBase64 = true برای یک فایل مارکداون خودکفا، یا تنظیم کنید ImagesFolder برای کنترل مکان قرارگیری تصاویر.
خروجی متن ساده، تراز ستونهای جدول را از دست میدهد. TxtSaveOptions.PreserveTableLayout بهصورت پیشفرض باقی میماند. تنظیم کنید PreserveTableLayout = true قبل از ذخیرهسازی.
سوالات متداول
چگونه میتوانم بدون در نظر گرفتن پسوند فایل، در یک فرمت خاص ذخیره کنم؟
تابع Save(fileName, saveFormat) را با مقدار صریح SaveFormat فراخوانی کنید، یا Save(fileName, saveOptions) را با یک زیرکلاس SaveOptions منطبق.
کدام فرمتها در این نسخه بهصورت دوطرفه (round-trip) پشتیبانی میشوند؟
DOCX، DOCM، DOTX، DOTM، Flat OPC (بههمراه انواع ماکروفعال و قالب آن)، Markdown، و متن ساده.
چگونه میتوان یک فایل ذخیرهشده را با رمز عبور محافظت کنم بهطوریکه حتی قابل باز کردن نباشد؟
مقدار Password را روی یک نمونه OoxmlSaveOptions تنظیم کنید و آن را به Document.Save(fileName, saveOptions) پاس بدهید.
چگونه میتوانم پایان خطوط را در یک فایل متنی صادرشده کنترل کنم؟
قبل از ذخیرهسازی، مقدار ParagraphBreak را روی یک نمونه TxtSaveOptions تنظیم کنید.
چگونه میتوانم فرمت یک فایل را قبل از تبدیل آن بررسی کنم؟
فراخوانی FileFormatUtil.DetectFileFormat(fileName) و خواندن FileFormatInfo.LoadFormat بازگردانده شده.