Tổng quan về Trình tạo tài liệu
DocumentBuilder là một lớp mạnh mẽ liên kết với Document và cho phép bạn xây dựng các tài liệu động từ đầu hoặc thêm các phần tử mới vào tài liệu hiện có.
DocumentBuilder cung cấp các phương thức để chèn văn bản, hộp kiểm, đối tượng ole, đoạn văn, danh sách, bảng, hình ảnh và các thành phần nội dung khác. Nó cho phép bạn chỉ định phông chữ, định dạng đoạn hoặc phần và thực hiện các thao tác khác.
Trình tạo tài liệu hoặc Aspose.Words DOM
DocumentBuilder bổ sung các lớp và phương thức có sẵn trong Aspose.Words Document Object Model (DOM) để đơn giản hóa các tác vụ xây dựng tài liệu phổ biến nhất. Nghĩa là, bạn có thể tạo và sửa đổi nội dung của tài liệu thông qua Aspose.Words DOM, điều này đòi hỏi sự hiểu biết tốt về cấu trúc cây và sử dụng DocumentBuilder. DocumentBuilder
là “mặt tiền” cho cấu trúc Document phức tạp, cho phép bạn chèn nội dung và định dạng một cách nhanh chóng và dễ dàng.
Các thao tác có thể thực hiện được với DocumentBuilder cũng có thể thực hiện được khi sử dụng trực tiếp các lớp của Aspose.Words DOM. Tuy nhiên, việc sử dụng trực tiếp các lớp DOM Aspose.Words thường yêu cầu nhiều dòng mã hơn so với việc sử dụng DocumentBuilder.
Điều hướng tài liệu
Điều hướng tài liệu dựa trên khái niệm con trỏ ảo mà bạn có thể di chuyển đến một vị trí khác trong tài liệu bằng nhiều phương pháp DocumentBuilder.move_to_XXX khác nhau như move_to_document_start và move_to_field. Con trỏ ảo này cho biết vị trí văn bản sẽ được chèn khi gọi các phương thức write, writeln, insert_break và các phương thức khác. Xem bài viết sau “Điều hướng bằng con trỏ” để tìm hiểu thêm về con trỏ ảo.
Ví dụ mã sau đây cho biết cách điều hướng đến dấu trang:
Xây dựng và sửa đổi tài liệu
Aspose.Words API cung cấp một số lớp chịu trách nhiệm định dạng các thành phần khác nhau của tài liệu. Mỗi lớp bao gồm các thuộc tính định dạng liên quan đến một thành phần tài liệu cụ thể, chẳng hạn như văn bản, đoạn văn, phần và các thuộc tính khác. Ví dụ: lớp Font biểu thị các thuộc tính định dạng ký tự, lớp ParagraphFormat biểu thị các thuộc tính định dạng đoạn văn, v.v. Đối tượng của các lớp này được trả về bởi các thuộc tính DocumentBuilder tương ứng, có cùng tên với các lớp. Do đó, bạn có thể truy cập chúng và đặt định dạng mong muốn trong quá trình xây dựng tài liệu.
Bạn cũng có thể chèn văn bản, hộp kiểm, đối tượng ole, hình ảnh, dấu trang, trường biểu mẫu và các thành phần tài liệu khác vào vị trí con trỏ bằng phương thức Write
hoặc bất kỳ phương thức DocumentBuilder.insert_XXX nào, chẳng hạn như insert_field, insert_html và các phương thức tương tự.
Hãy xem cách tạo một tài liệu đơn giản bằng DocumentBuilder.
Tạo tài liệu bằng DocumentBuilder
Để bắt đầu, bạn cần tạo DocumentBuilder và liên kết nó với đối tượng Document. Bạn tạo một phiên bản DocumentBuilder mới bằng cách gọi hàm tạo của nó và chuyển nó tới đối tượng Document để đính kèm vào trình tạo.
Để chèn văn bản, truyền chuỗi văn bản bạn cần chèn vào tài liệu sang phương thức write.
Ví dụ về mã sau đây cho thấy cách tạo một tài liệu đơn giản bằng cách sử dụng trình tạo tài liệu.
Chỉ định định dạng tài liệu
Thuộc tính font xác định định dạng văn bản. Đối tượng này chứa các thuộc tính phông chữ khác nhau (tên phông chữ, cỡ chữ, màu sắc, v.v.). Một số thuộc tính phông chữ quan trọng cũng được thể hiện bằng thuộc tính DocumentBuilder để cho phép bạn truy cập chúng trực tiếp. Đây là các thuộc tính boolean Font.bold, Font.italic và Font.underline.
Ví dụ mã sau đây cho thấy cách chèn văn bản được định dạng bằng DocumentBuilder:
- font quy định định dạng ký tự sẽ được áp dụng cho toàn bộ văn bản được chèn từ vị trí hiện tại trong tài liệu trở đi.
- paragraph_format chỉ định định dạng đoạn văn cho đoạn văn hiện tại và tất cả các đoạn văn được chèn vào.
- page_setup chỉ định thuộc tính trang và phần cho phần hiện tại và toàn bộ phần sẽ được chèn vào.
- cell_format và row_format chỉ định các thuộc tính định dạng sẽ được áp dụng cho các ô và hàng của bảng từ vị trí hiện tại trong tài liệu trở đi.
Trong trường hợp này, “hiện tại” có nghĩa là vị trí, đoạn, phần, ô hoặc hàng chứa con trỏ.