کار با بخش‌ها

کار با بخش‌ها

یک سند Word به یک یا چند بخش تقسیم می‌شود، که هر کدام تنظیمات صفحه، حاشیه‌ها، سرصفحه‌ها و پاورقی‌های خود را دارند. Aspose.Words FOSS برای .NET یک بخش را به عنوان یک Section گره، شامل یک Body و، به‌صورت اختیاری، سرصفحه‌ها و پاورقی‌ها، به‌علاوه یک PageSetup که چینش آن را کنترل می‌کند. این صفحه مدل شیء بخش، تنظیمات صفحه، سرصفحه‌ها و پاورقی‌ها، و چیدمان متن چندستونی را پوشش می‌دهد.


مدل شیء بخش

Document.Sections یک SectionCollection برمی‌گرداند – هر Section در سند، که هر یک یک CompositeNode و بخشی از درخت گره هستند. یک Section شامل یک Body است (یک Story که پاراگراف‌ها و جدول‌های اصلی بخش را در بر دارد) و، در صورت وجود، گره‌های HeaderFooter که از طریق Section.HeadersFooters قابل دسترسی هستند، یک HeaderFooterCollection. Document.FirstSection و Document.LastSection دسترسی مستقیم به بخش‌های مرزی را فراهم می‌کنند. Section.AppendContent()، PrependContent() و ClearContent() محتوای بدنهٔ یک بخش را به‌صورت دسته‌ای دستکاری می‌کنند، در حالی که ClearHeadersFooters() و DeleteHeaderFooterShapes() محتوای سرصفحه/پاورقی را پاک می‌کنند.


ایجاد بخش‌ها و شکست‌های بخش

DocumentBuilder.InsertBreak(BreakType) یک شکست را در مکان‌نما وارد می‌کند؛ BreakType شامل SectionBreakNewPage، SectionBreakContinuous، SectionBreakNewColumn، SectionBreakEvenPage و SectionBreakOddPage برای شروع یک بخش جدید می‌شود، همراه با مقادیر غیربخشی PageBreak، ColumnBreak، LineBreak و ParagraphBreak. DocumentBuilder.MoveToSection() مکان‌نما را به ابتدای بدنهٔ یک بخش خاص منتقل می‌کند. PageSetup.SectionStart نوع شکست SectionStart ثبت‌شده بر روی یک بخش موجود را می‌خواند یا تنظیم می‌کند.


تنظیمات صفحه

Section.PageSetup یک نمونه PageSetup است که ابعاد صفحه و حاشیه‌ها (PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter)، Orientation و PaperSize، و حاشیه‌های صفحه به ازای هر طرف (Borders, BorderAppliesTo از طریق PageBorderAppliesTo, BorderDistanceFrom از طریق PageBorderDistanceFrom, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter) را پوشش می‌دهد. شماره‌گذاری خطوط توسط LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText و LineStartingNumber کنترل می‌شود. PageSetup.ClearFormatting() آن را به پیش‌فرض‌ها بازنشانی می‌کند.


سرصفحه‌ها و پاورقی‌ها

Section.HeadersFooters یک HeaderFooterCollection با دسترسی‌گرهای تایپ‌شده است – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – به‌همراه GetByHeaderFooterType(), Add() و LinkToPrevious(). هر HeaderFooter یک Story (مانند Body) است که توسط HeaderFooterType شناسایی می‌شود و با برچسب IsHeader / IsLinkedToPrevious علامت‌گذاری شده است. PageSetup.DifferentFirstPageHeaderFooter و PageSetup.OddAndEvenPagesHeaderFooter تعیین می‌کنند که آیا Word انتظار دارد انواع سرصفحه/پاورقی صفحه اول و صفحه زوج استفاده شوند یا خیر.


ستون‌های متن چندگانه

PageSetup.TextColumns یک TextColumnCollection (Count, EvenlySpaced, LineBetween, Spacing, Width) برمی‌گرداند که با SetCount() بخش بدنه را در چندین ستون چیدمان می‌کند. ستون‌های منفرد نمونه‌های TextColumn هستند (Width, SpaceAfter) زمانی که مجموعه با بیش از یک ستون پر شود.


نکات و بهترین شیوه‌ها

  • یک شکست بخش قالب‌بندی را برای بخشی که follows آن – تنظیم PageSetup ویژگی‌ها بر روی یک Section شما به‌تازگی ایجاد کردید (بعد InsertBreak) بر محتوا که پس از شکست می‌آید تأثیر می‌گذارد، نه قبل از آن.
  • از SectionBreakContinuous زمانی استفاده کنید که فقط به تغییری در تنظیمات صفحه نیاز دارید (مثلاً، تغییر به متن چندستونی) بدون شروع صفحه جدید؛ از SectionBreakNewPage وقتی استفاده کنید که بخش جدید باید همیشه در صفحه‌ای تازه آغاز شود.
  • HeaderFooterCollection.LinkToPrevious() سرآیند/پاورقی یک بخش را دوباره وصل می‌کند تا محتوای بخش قبلی را به ارث ببرد – این کار را قبل از نوشتن محتوای جدید سرآیند/پاورقی انجام دهید اگر می‌خواهید بخش جدید به‌صورت مستقل از بخش قبل شروع شود.
  • PageSetup.DifferentFirstPageHeaderFooter و OddAndEvenPagesHeaderFooter فقط زمانی مؤثر می‌شوند که انواع مربوط به HeaderFooterType (HeaderFirst، HeaderEven و غیره) واقعاً در Section.HeadersFooters وجود داشته باشند – پرچم را فعال کنید و سرآیند/پاورقی مربوطه را با هم اضافه کنید.
  • Section.Body و هر HeaderFooter نمونه‌های جداگانه‌ای از Story هستند – Range.Fields، نشانک‌ها و سایر عملیات‌های محدوده‌ای روی Body بخش به‌صورت خودکار به سرآیندها و پاورقی‌های آن دسترسی ندارند.

مشکلات رایج

مسئلهدلیلرفع
تنظیمات صفحه بخش جدید با آنچه من تنظیم کرده‌ام مطابقت نداردPageSetup روی نمونهٔ نادرست Section تنظیم شدتنظیم PageSetup در بخشی که follows وقف، نه قبلی آن
محتواى سرصفحه/پاصفحه از بخش قبلی به‌طور غیرمنتظره در بخش جدید ظاهر می‌شودسرصفحه‌ها/پاورقی‌های بخش جدید هنوز به بخش قبلی متصل هستندمتد HeaderFooterCollection.LinkToPrevious(false) را فراخوانی کنید (یا محتویات متمایز سرصفحه/پاورقی اضافه کنید) تا آن‌ها را جدا کنید
سرصفحه/پاورقی صفحه اول یا صفحه زوج نادیده گرفته می‌شودDifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter برابر با false است، یا نسخهٔ منطبق HeaderFooterType وجود نداردپرچم را روی PageSetup تنظیم کنید و اطمینان حاصل کنید که نسخهٔ مربوط به سرصفحه/پاورقی موجود است
طرح چند‌ستونی اعمال نمی‌شودTextColumns.SetCount() با مقدار شمارش ۱ فراخوانی شد، یا بر روی PageSetup بخش اشتباهمتد SetCount() را با بیش از یک ستون در PageSetup.TextColumns بخش هدف فراخوانی کنید

FAQ

چگونه می‌توانم یک بخش جدید را بدون شروع صفحه جدید آغاز کنم؟

یک شکست SectionBreakContinuous را با DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous) وارد کنید.

چگونه می‌توانم به یک بخش حاشیه‌ها و جهت‌گیری اختصاصی بدهد؟

یک شکست بخش اضافه کنید، سپس ویژگی‌های PageSetup بخش جدید را بر روی TopMargin، BottomMargin، LeftMargin، RightMargin، Orientation و PaperSize تنظیم کنید.

چگونه می‌توانم صفحهٔ اول یک بخش سرصفحهٔ متفاوتی داشته باشد؟

در آن بخش PageSetup.DifferentFirstPageHeaderFooter = true را تنظیم کنید، و یک HeaderFooter از نوع HeaderFirst (و FooterFirst در صورت نیاز) به مجموعهٔ HeadersFooters آن اضافه کنید.

چگونه متن بدنهٔ یک بخش را در دو ستون تنظیم کنم؟

در بخش، PageSetup.TextColumns.SetCount(2) را فراخوانی کنید، سپس Spacing و EvenlySpaced / مقادیر جداگانهٔ TextColumn.Width را بر حسب نیاز تنظیم کنید.


API Reference خلاصه

کلاس / Enumتوضیح
Sectionیک گره بخش؛ Body، HeadersFooters، PageSetup
SectionCollectionهر Section در سند، از طریق Document.Sections
Body / Storyمحفظه اصلی محتوا برای یک بخش (Body) یا سرصفحه/پاورقی (HeaderFooter)
PageSetupابعاد صفحه، حاشیه‌ها، جهت‌گیری، مرزها و ستون‌ها برای یک بخش
HeaderFooter / HeaderFooterCollectionمحتوای سرصفحه/پاصفحه و دسترسی‌گرهای تایپ‌شده برای یک بخش
HeaderFooterTypeمشخص می‌کند که کدام نوع سرصفحه/پاصفحه (primary, first, even) یک HeaderFooter است
TextColumn / TextColumnCollectionچیدمان متن چندستونی برای یک بخش
PaperSize / Orientation / Marginsاندازه صفحه، جهت‌گیری و مقادیر پیش‌تنظیم حاشیه
PageBorderAppliesTo / PageBorderDistanceFromصفحه‌هایی که حاشیه صفحه روی آن‌ها چاپ می‌شود و لبهٔ مرجع آن
SectionStart / BreakTypeنوع شکست‌بخش که بر روی یک بخش ثبت می‌شود، و انواع شکست‌ که DocumentBuilder.InsertBreak() می‌پذیرد
LineNumberRestartModeزمانی که شماره‌گذاری خودکار خطوط درون یک بخش دوباره شروع می‌شود

همچنین ببینید:

 فارسی