چگونه با متن در .NET کار کنیم
این راهنما نشان میدهد چگونه با متن در Aspose.Words FOSS برای .NET کار کنید: قالببندی قلم یک run، قالببندی یک پاراگراف، جستجو و جایگزینی متن با Range، افزودن یک کامنت، و تبدیل یک پاراگراف به یک آیتم لیست. Aspose.Words FOSS برای .NET از طریق NuGet یا با ساخت از منبع در دسترس است.
راهنمای گام به گام
مرحله ۱: دریافت کتابخانه
مخزن را کلون کنید و بسازید Aspose.Words.sln در پیکربندی Release، سپس یک مرجع پروژه به Aspose.Words.csproj از پروژه .NET خودتان، همانطور که در راهنمای نصب. افزودن using Aspose.Words; در بالای هر فایلی که با متن کار میکند.
مرحله ۲: قالببندی قلم یک Run
یک Run بخشی از متن است که یک مجموعه قالببندی مشترک دارد؛ ویژگی Text آن محتوای متن ساده را نگه میدارد و ویژگی Font آن (یک شیء Font) قالببندی سطح کاراکتر را شامل میشود — Name، Size، Bold، Italic، Underline، Color، HighlightColor، Subscript/Superscript، و StrikeThrough و موارد دیگر. Font.ClearFormatting() یک run را به پیشفرضها باز میگرداند. runهای یک پاراگراف از طریق ویژگی Runs آن، که یک RunCollection است، در دسترس هستند. تنظیم ویژگیهای قلم بر روی DocumentBuilder.Font قبل از نوشتن متن جدید معمولاً سادهتر از قالببندی اشیاء Run به صورت جداگانه پس از نوشتن است.
مرحلهٔ ۳: قالببندی یک پاراگراف
Paragraph.ParagraphFormat (یک شیء ParagraphFormat) کنترل طرحبندی در سطح پاراگراف را بر عهده دارد: Alignment، تورفتگیها (LeftIndent، RightIndent، FirstLineIndent)، فاصلهها (SpaceBefore، SpaceAfter، LineSpacing، LineSpacingRule)، و رفتار صفحهبندی (KeepTogether، KeepWithNext، PageBreakBefore، WidowControl). ParagraphFormat.ClearFormatting() اینها را به پیشفرضها بازنشانی میکند، و Paragraph.JoinRunsWithSameFormatting() بخشهای مجاور که قالببندی یکسان دارند را ادغام میکند — که پس از یک سری ویرایشهای برنامهنویسی که منجر به داشتن پاراگرافی با بخشهای بیش از حد میشود، مفید است.
مرحلهٔ ۴: یافتن و جایگزینی متن با بازه
هر گرهٔ حامل محتوا — یک Document، Section، Paragraph یا Run — یک Range را آشکار میکند. Range.Text متن سادهٔ تمام محتویات داخل آن بازه را برمیگرداند، و Range.Replace(pattern, replacement) جستجو و جایگزینی را محدود به همان بازه انجام میدهد: آن را بر Paragraphی Range صدا بزنید تا متن فقط در یک پاراگراف تغییر کند، یا بر Document.Range برای جستجو در تمام سند. Range.Delete() محتوای بازه را بهصورت کامل حذف میکند.
مرحلهٔ ۵: افزودن یک نظر
یک Comment را با new Comment(doc, author, initial, dateTime) بسازید، متن آن را با SetText(text) تنظیم کنید، سپس آن را مثل هر گرهٔ دیگری به درخت وارد کنید. Comment.AddReply(author, initial, dateTime, text) یک پاسخ رشتهای — که خود یک Comment است — پیوست میکند و RemoveReply(reply) / RemoveAllReplies() پاسخها را برمیدارند. نظرات یک سند در یک CommentCollection جمعآوری میشوند.
مرحلهٔ ۶: تبدیل یک پاراگراف به یک مورد فهرست
Paragraph.ListFormat (یک شیء ListFormat) گزارش میدهد و کنترل میکند که آیا یک پاراگراف در فهرست شرکت میکند یا نه: IsListItem و ListLevelNumber وضعیت فعلی آن را گزارش میدهند. ApplyBulletDefault() پاراگراف را به یک مورد بولتدار پیشفرض تبدیل میکند و ApplyNumberDefault() به یک مورد شمارهدار پیشفرض؛ ListIndent() / ListOutdent() سطح تو در تویی آن را تغییر میدهند، و RemoveNumbers() آن را به یک پاراگراف ساده برمیگرداند.
مسائل رایج و راهحلها
قالببندی یک Runفونت آن متن مجاور را تغییر نمیدهد. متن مجاور متفاوت است Run با خود Font نمونه. یا همه موارد تحت تأثیر را پیدا کنید و قالببندی کنید Run، یا قالببندی را بر DocumentBuilder.Font قبل از نوشتن متن جدید.
Range.Replace متن را خارج از ناحیه مورد نظر تغییر میدهد. Replace بر روی فراخوانی شد Document.Range بهجای محدوده گرهٔ باریکتر. آن را بر روی مورد خاص فراخوانی کنید Paragraph or Section متنی که باید تغییر کند.
یک پاراگراف شبیه یک مورد لیست بولتدار به نظر میرسد اما IsListItem is false. بولت یک متن تایپی است، نه قالببندی واقعی لیست. آن را با ListFormat.ApplyBulletDefault() بهجای آن.
سند در نهایت مقدار بسیار بیشتری دارد. Run گرهها نسبت به انتظار. ویرایشهای برنامهای کوچک مکرر، اجراها را بدون بازپیوستن تقسیم میکنند. فراخوانی Paragraph.JoinRunsWithSameFormatting() پس از یک دسته از ویرایشها.
سوالات متداول
تفاوت بین Run و Paragraph چیست؟
یک Run بازهای از متن است که یک مجموعه قالببندی کاراکتر را به اشتراک میگذارد (Font). یک Paragraph گرهٔ ترکیبی است که یک یا چند ران به علاوه قالببندی سطح پاراگراف را شامل میشود (ParagraphFormat).
چگونه میتوانم تمام متن موجود در یک سند یا یک بخش واحد را بخوانم؟
ویژگی Text آن گرهٔ Range را بخوانید — document.Range.Text یا section.Range.Text.
چگونه میتوانم متن داخل فقط یک پاراگراف را جایگزین کنم، نه کل سند؟
متد Replace(pattern, replacement) را بر روی Range آن Paragraph صدا بزنید، نه بر روی Document.Range.
چگونه میتوانم به یک نظر موجود پاسخ دهم؟
متد Comment.AddReply(author, initial, dateTime, text) را بر روی نمونهٔ اصلی Comment صدا بزنید.
چگونه میتوانم یک مورد از فهرست شمارهدار را به یک پاراگراف ساده تبدیل کنم؟
متد RemoveNumbers() را روی ListFormat آن پاراگراف فراخوانی کنید.