بلوک‌های ساختمانی

بلوک‌های ساختمانی

این راهنما نشان می‌دهد چگونه بلوک‌های ساختمانی محتوای قابل استفاده مجدد که در سند واژه‌نامهٔ یک سند ذخیره شده‌اند، با Aspose.Words FOSS برای .NET خوانده و اصلاح شوند. کتابخانه AutoText ورودی‌ها، صفحات جلد، سرصفحه‌ها، پاصفحه‌ها و محتوای پیش‌تعریف‌شدهٔ مشابه را از طریق Document.GlossaryDocument و مدل شیء BuildingBlock/BuildingBlockCollection در دسترس می‌گذارد.


سند واژه‌نامه

هر Document یک GlossaryDocument دارد — که از طریق Document.GlossaryDocument قابل دسترسی است — که خود یک زیرکلاس DocumentBase است و بلوک‌های ساختمانی را نگه می‌دارد. ویژگی BuildingBlocks آن یک BuildingBlockCollection برمی‌گرداند، که با FirstBuildingBlock/LastBuildingBlock دسترسی سریع به انتهای فهرست را فراهم می‌کند. یک بلوک ساختمانی خاص را با GetBuildingBlock(gallery, category, name) جستجو کنید، به‌طوری که BuildingBlockGallery، رشتهٔ دسته‌بندی و نام آن را همزمان مطابقت دهد.


ساختار بلوک ساختمانی

BuildingBlock یک CompositeNode است، بنابراین درخت محتوای خود را دارد — Sections (یک SectionCollection)، FirstSection و LastSection — همان‌طور که یک Document بخش‌ها را نگه می‌دارد. ویژگی‌های فراداده‌ای آن را شناسایی و طبقه‌بندی می‌کنند: Name، Guid، Description، Category، Gallery (یک BuildingBlockGallery — AutoText، CoverPage، Headers، Footers، Tables، Watermarks، و ده‌ها گالری پیش‌تعریف‌شدهٔ دیگر)، Type (یک BuildingBlockType)، و Behavior (یک BuildingBlockBehavior از Content، Paragraph یا Page) که نحوهٔ ادغام محتویات آن در یک سند هنگام وارد شدن را کنترل می‌کند.


مدیریت مجموعه بلوک‌های ساختمانی

BuildingBlockCollection از ویرایش کامل مجموعه پشتیبانی می‌کند: Add(node)، Insert(index, node)، Remove(node)، RemoveAt(index)، Clear()، Contains(node) و IndexOf(node)، به‌همراه ToArray() و GetEnumerator() برای خواندن. چون یک NodeCollection است، بلوک‌های ساختاری می‌توانند ساخته، کلون و جابه‌جا شوند با استفاده از همان APIهای گره همانند هر بخش دیگری از درخت سند.


بلوک‌های ساختاری متن جایگزین

برچسب‌های سند ساختاری می‌توانند یک بلوک ساختاری را به عنوان محتوای جایگزین خود ارجاع دهند: StructuredDocumentTag.Placeholder و StructuredDocumentTagRangeStart.Placeholder هر دو BuildingBlock نشان داده‌شده را هنگامی که برچسب خالی باشد، از طریق ویژگی مشترک IStructuredDocumentTag.Placeholder برمی‌گردانند.


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

  • سه آرگومان GetBuildingBlock(gallery, category, name) را با دقت تطبیق دهید — همان نام می‌تواند در گالری‌ها یا دسته‌بندی‌های مختلف وجود داشته باشد.
  • از BuildingBlockGallery برای فیلتر کردن نوع محتوای قابل استفاده مجددی که به دنبال آن هستید (AutoText، CoverPage، Tables، Watermarks و غیره) استفاده کنید، به‌جای اسکن کردن تمام بلوک‌های ساختاری فقط بر اساس نام.
  • BuildingBlockBehavior تعیین می‌کند که محتویات وارد شده چگونه با سند اطراف ترکیب شوند (Content، Paragraph یا Page) — قبل از این که فرض کنید یک بلوک ساختاری به‌صورت مورد انتظار درج می‌شود، آن را بررسی کنید.
  • از آنجا که BuildingBlock یک CompositeNode است، آن را مانند هر زیرشاخه گره دیگری هنگام ساخت یا ویرایش محتویاتش رفتار کنید — AppendChild، InsertAfter و روش‌های مشابه گره همه اعمال می‌شوند.

مسائل رایج

مشکلدلیلرفع
GetBuildingBlock() هیچ مقداری برنمی‌گرداندگالری، دسته یا نام دقیقاً با یک بلوک ساختمانی موجود مطابقت نداردفهرست GlossaryDocument.BuildingBlocks برای یافتن ترکیب دقیق Gallery/Category/Name
محتویات بلوک ساختمانی درج‌شده به‌طور غیرمنتظره‌ای ادغام می‌شودBehavior (Content/Paragraph/Page) در نظر گرفته نشده استقبل از درج، BuildingBlock.Behavior را بررسی کنید تا بفهمید چگونه ادغام می‌شود
پلیس‌هولدر برچسب سند ساختاری محتوای مورد انتظار را نشان نمی‌دهدPlaceholder به یک BuildingBlock متفاوت نسبت به فرض قبلی اشاره می‌کندبرای تأیید اینکه کدام بلوک ساختمانی واقعاً مرجع است، StructuredDocumentTag.Placeholder را بخوانید

FAQ

بلوک‌های سازنده در یک سند کجا ذخیره می‌شوند؟

در GlossaryDocument سند، که از طریق Document.GlossaryDocument قابل دسترسی است و ویژگی BuildingBlocks آن یک BuildingBlockCollection است.

چگونه یک بلوک سازنده خاص را پیدا کنم، مثلاً یک ورودی AutoText؟

متد GlossaryDocument.GetBuildingBlock(gallery, category, name) را با BuildingBlockGallery منطبق، دسته و نام فراخوانی کنید.

آیا می‌توانم بلوک‌های سازنده جدید را برنامه‌نویسی کنم؟

بله — BuildingBlockCollection از Add(node) و Insert(index, node) پشتیبانی می‌کند چون یک NodeCollection است.

BuildingBlockBehavior چه چیزی را کنترل می‌کند؟

چگونه محتوای بلوک ساختمانی هنگام درج به سند ترکیب می‌شود — به عنوان Content، یک Paragraph کامل، یا یک Page کامل.

بلوک ساختمانی چگونه با متن جایگزین برچسب سند ساختاری مرتبط است؟

StructuredDocumentTag.Placeholder (و StructuredDocumentTagRangeStart.Placeholder) مقدار BuildingBlock را برمی‌گردانند که محتوای جایگزین یک SDT را هنگام خالی بودن فراهم می‌کند.


خلاصه API Reference

کلاس / متدتوضیح
Document.GlossaryDocumentGlossaryDocument سند، که تمام بلوک‌های ساختمانی را در خود دارد
GlossaryDocument.BuildingBlocksBuildingBlockCollection هر بلوک ساختمانی
GlossaryDocument.GetBuildingBlock()بلوک ساختمانی را بر اساس گالری، دسته‌بندی و نام جستجو می‌کند
BuildingBlockیک CompositeNode با Name، Gallery، Category، Behavior، Type، Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnums که یک بلوک سازنده را طبقه‌بندی می‌کنند
StructuredDocumentTag.PlaceholderBuildingBlock که به عنوان محتوای جای‌دار SDT استفاده می‌شود

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

 فارسی