Khối xây dựng

Các khối xây dựng

Hướng dẫn này cho thấy cách đọc và sửa đổi các khối nội dung có thể tái sử dụng được lưu trữ trong tài liệu glossary của tài liệu với Aspose.Words FOSS cho .NET. Thư viện cung cấp các mục AutoText, trang bìa, đầu trang, chân trang và các nội dung định trước tương tự thông qua Document.GlossaryDocument và mô hình đối tượng BuildingBlock/BuildingBlockCollection.


Tài liệu Thuật ngữ

Mỗi Document chứa một GlossaryDocument — có thể truy cập qua Document.GlossaryDocument — mà bản thân nó là một lớp con DocumentBase chứa các khối xây dựng. Thuộc tính BuildingBlocks của nó trả về một BuildingBlockCollection, với FirstBuildingBlock/LastBuildingBlock cung cấp truy cập nhanh tới các cuối của danh sách. Tìm kiếm một khối xây dựng cụ thể bằng GetBuildingBlock(gallery, category, name), khớp với BuildingBlockGallery, chuỗi danh mục và tên cùng nhau.


Cấu trúc Khối xây dựng

BuildingBlock là một CompositeNode, vì vậy nó chứa cây nội dung riêng — Sections (một SectionCollection), FirstSection, và LastSection — giống như một Document chứa các phần. Các thuộc tính siêu dữ liệu của nó xác định và phân loại nó: Name, Guid, Description, Category, Gallery (một BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks, và hàng chục bộ sưu tập định trước khác), Type (một BuildingBlockType), và Behavior (một BuildingBlockBehavior của Content, Paragraph, hoặc Page) kiểm soát cách nội dung của nó được hợp nhất vào tài liệu khi được chèn.


Quản lý Bộ sưu tập Khối xây dựng

BuildingBlockCollection hỗ trợ chỉnh sửa toàn bộ bộ sưu tập: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node), và IndexOf(node), cùng với ToArray() và GetEnumerator() để đọc. Vì nó là một NodeCollection, các khối xây dựng có thể được tạo, sao chép và di chuyển bằng cùng các API nút như bất kỳ phần nào khác của cây tài liệu.


Các khối xây dựng văn bản placeholder

Các thẻ tài liệu có cấu trúc có thể tham chiếu đến một khối xây dựng làm nội dung placeholder của chúng: StructuredDocumentTag.Placeholder và StructuredDocumentTagRangeStart.Placeholder đều trả về BuildingBlock được hiển thị khi thẻ trống, thông qua thuộc tính IStructuredDocumentTag.Placeholder chung.


Mẹo và Thực hành Tốt nhất

  • Khớp ba đối số của GetBuildingBlock(gallery, category, name) một cách cẩn thận — cùng một tên có thể tồn tại trong các bộ sưu tập hoặc danh mục khác nhau.
  • Sử dụng BuildingBlockGallery để lọc loại nội dung tái sử dụng bạn đang tìm kiếm (AutoText, CoverPage, Tables, Watermarks, v.v.) thay vì chỉ quét từng khối xây dựng theo tên.
  • BuildingBlockBehavior xác định cách nội dung được chèn hợp nhất với tài liệu xung quanh (Content, Paragraph, hoặc Page) — hãy kiểm tra nó trước khi cho rằng một khối xây dựng sẽ chèn theo cách bạn mong đợi.
  • Vì BuildingBlock là một CompositeNode, hãy coi nó giống như bất kỳ nhánh nút con nào khác khi xây dựng hoặc chỉnh sửa nội dung của nó — AppendChild, InsertAfter, và các phương thức nút tương tự đều áp dụng.

Các vấn đề thường gặp

Vấn đềNguyên nhânKhắc phục
GetBuildingBlock() không trả về gìThư viện, danh mục hoặc tên không khớp chính xác với một khối xây dựng hiện cóLiệt kê GlossaryDocument.BuildingBlocks để tìm kết hợp Gallery/Category/Name chính xác
Nội dung khối xây dựng được chèn hợp nhất một cách bất ngờBehavior (Content/Paragraph/Page) không được tính đếnKiểm tra BuildingBlock.Behavior trước khi chèn để hiểu cách nó sẽ được hợp nhất
Trình giữ chỗ thẻ tài liệu có cấu trúc không hiển thị nội dung mong đợiPlaceholder chỉ tới một BuildingBlock khác so với giả địnhĐọc StructuredDocumentTag.Placeholder để xác nhận khối xây dựng nào thực sự được tham chiếu

FAQ

Các khối xây dựng được lưu trữ ở đâu trong tài liệu?

Trong GlossaryDocument của tài liệu, có thể truy cập qua Document.GlossaryDocument, mà thuộc tính BuildingBlocks của nó là một BuildingBlockCollection.

Làm thế nào để tôi tìm một khối xây dựng cụ thể, chẳng hạn như mục AutoText?

Gọi GlossaryDocument.GetBuildingBlock(gallery, category, name) với BuildingBlockGallery phù hợp, danh mục và tên.

Tôi có thể thêm các khối xây dựng mới bằng chương trình không?

Có — BuildingBlockCollection hỗ trợ Add(node) và Insert(index, node) vì nó là một NodeCollection.

BuildingBlockBehavior kiểm soát gì?

Cách nội dung khối xây dựng được hợp nhất vào tài liệu khi chèn — dưới dạng Content, một Paragraph toàn bộ, hoặc một Page toàn bộ.

Khối xây dựng liên quan như thế nào đến văn bản giữ chỗ của thẻ tài liệu có cấu trúc?

StructuredDocumentTag.Placeholder (và StructuredDocumentTagRangeStart.Placeholder) trả về BuildingBlock cung cấp nội dung giữ chỗ của SDT khi nó trống.


API Reference Tóm tắt

Lớp / Phương thứcMô tả
Document.GlossaryDocumentGlossaryDocument của tài liệu, chứa tất cả các khối xây dựng
GlossaryDocument.BuildingBlocksBuildingBlockCollection của mọi khối xây dựng
GlossaryDocument.GetBuildingBlock()Tra cứu một khối xây dựng theo bộ sưu tập, danh mục và tên
BuildingBlockMột CompositeNode với Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorCác enum phân loại một khối xây dựng
StructuredDocumentTag.PlaceholderThe BuildingBlock được sử dụng làm nội dung placeholder của SDT

Xem thêm

 Tiếng Việt