Hướng dẫn python word update table of contents - python word cập nhật mục lục
Tôi sử dụng gói Python "Python-docx" để sửa đổi nội dung AMD cấu trúc của các tài liệu MS .Docx. Gói thiếu khả năng cập nhật TOC (Bảng nội dung) [Python: Tạo một "Bảng nội dung" với Python-DOCX/LXML. Show
Có cách giải quyết để cập nhật TOC của một tài liệu không? Tôi đã nghĩ về việc sử dụng "win32com.client" từ gói python "pywin32" [https://pypi.python.org/pypi/pypiwin32] hoặc gói PYPI có thể so sánh cung cấp "kiểm soát CLI" cho MS Office. Tôi đã thử như sau: Tôi đã thay đổi tài liệu.docx thành document.docm và triển khai macro sau [http://word.tips.net/t000301_updating_an_entire_toc_from_a_macro.html]:
Nếu tôi thay đổi nội dung (thêm/xóa các tiêu đề) và chạy macro, TOC sẽ được cập nhật. Tôi lưu tài liệu và tôi hạnh phúc. Tôi thực hiện mã python sau đây tương đương với macro:
update_toc (docx_file) được gọi trong tập lệnh cấp cao hơn (điều khiển nội dung liên quan đến TOC của tài liệu). Sau khi chức năng này gọi tài liệu được lưu (doc.save ()), đóng (doc.close ()) và phiên bản từ được đóng (word.quit ()). Tuy nhiên TOC không được cập nhật. MS Word có thực hiện các hành động bổ sung sau khi thực hiện macro mà tôi không xem xét không? Chèn và làm việc với trường Bảng nội dungThường thì bạn sẽ làm việc với các tài liệu có chứa một bảng nội dung (TOC). Sử dụng aspose.words Bạn có thể chèn bảng nội dung của riêng mình hoặc xây dựng lại hoàn toàn mục lục hiện tại trong tài liệu chỉ bằng một vài dòng mã. & NBSP; Bài viết này phác thảo cách làm việc với trường Bảng nội dung và trình bày:
Chèn một bảng nội dung theo chương trìnhBạn có thể chèn một trường TOC (Mục lục) vào tài liệu tại vị trí hiện tại bằng cách gọi & nbsp; documentBuilder.insert_table_of_contents & nbsp; phương thức. Một bảng nội dung trong một tài liệu Word có thể được xây dựng theo một số cách và được định dạng bằng nhiều tùy chọn khác nhau. Trường chuyển đổi mà bạn chuyển sang điều khiển phương thức theo cách xây dựng bảng và hiển thị trong tài liệu của bạn. Các công tắc mặc định được sử dụng trong TOC được chèn vào Microsoft Word là trên \ O, 1-3 \ H \ Z \ u. Mô tả về các công tắc này cũng như một danh sách các công tắc được hỗ trợ có thể được tìm thấy sau trong bài viết. Bạn có thể sử dụng hướng dẫn đó có được các công tắc chính xác hoặc nếu bạn đã có một tài liệu có chứa TOC tương tự mà bạn muốn bạn có thể hiển thị mã trường (ALT+F9) và sao chép các công tắc trực tiếp từ trường. Mẫu mã dưới đây cho thấy cách chèn một bảng nội dung (TOC) vào một tài liệu bằng cách sử dụng các kiểu tiêu đề làm mục.“\o “1-3 \h \z \u”. Descriptions of these switches as well as a list of supported switches can be found later in the article. You can either use that guide obtain the correct switches or if you already have a document containing the similar TOC that you want you can show field codes (ALT+F9) and copy the switches directly from the field. Below code sample shows how to insert a Table of contents (TOC) into a document using heading styles as entries. Mã thể hiện bảng nội dung mới được chèn vào một tài liệu trống. Lớp DocumentBuilder sau đó được sử dụng để chèn một số định dạng nội dung mẫu với các kiểu tiêu đề phù hợp được sử dụng để đánh dấu nội dung sẽ được đưa vào TOC. Các dòng tiếp theo sau đó điền vào TOC bằng cách cập nhật các trường và bố cục trang của tài liệu. Nếu không có các cuộc gọi này khi tài liệu đầu ra được mở, bạn sẽ thấy rằng sẽ có một trường TOC nhưng không có nội dung hiển thị. Điều này là do trường TOC đã được chèn nhưng chưa được điền cho đến khi nó được cập nhật trong tài liệu. Thông tin thêm về điều này được thảo luận trong phần tiếp theo. Cập nhật bảng nội dungAspose.words cho phép bạn cập nhật hoàn toàn một TOC chỉ với một vài dòng mã. Điều này có thể được thực hiện để điền vào TOC mới được chèn hoặc để cập nhật TOC hiện có sau khi các thay đổi đối với tài liệu đã được thực hiện. & NBSP; hai phương thức sau phải được sử dụng để cập nhật các trường TOC trong tài liệu:
Xin lưu ý rằng hai phương thức cập nhật này được yêu cầu được gọi theo thứ tự đó. Nếu đảo ngược, bảng nội dung sẽ được điền nhưng không có số trang nào được hiển thị. Bất kỳ số lượng TOC khác nhau có thể được cập nhật. Các phương thức này sẽ tự động cập nhật tất cả các TOC được tìm thấy trong tài liệu. & NBSP; Mẫu mã bên dưới cho thấy cách xây dựng lại hoàn toàn các trường TOC trong tài liệu bằng cách gọi cập nhật trường. Cuộc gọi đầu tiên đến Document.Update_Fields sẽ xây dựng TOC, tất cả các mục văn bản đều được điền và TOC xuất hiện gần như hoàn tất. Điều duy nhất còn thiếu là các số trang mà bây giờ được hiển thị với? các mục. Các số trang chính xác được tính toán từ cuộc gọi này sau đó được chèn vào TOC. Sử dụng các công tắc để kiểm soát hành vi của bảng nội dung.Như với bất kỳ trường nào khác, trường TOC có thể chấp nhận các công tắc được xác định trong mã trường kiểm soát cách xây dựng bảng nội dung. Một số công tắc được sử dụng để kiểm soát các mục nào được bao gồm và ở cấp độ nào trong khi các công tắc khác được sử dụng để kiểm soát sự xuất hiện của TOC. Các công tắc có thể được kết hợp với nhau để cho phép bảng nội dung phức tạp được sản xuất. Theo mặc định, các công tắc ở trên được bao gồm khi chèn TOC mặc định vào tài liệu. Một TOC không có công tắc sẽ bao gồm nội dung từ các kiểu tiêu đề tích hợp (như thể công tắc \ o được đặt). & NBSP; Các công tắc TOC có sẵn được hỗ trợ bởi Aspose.words được liệt kê bên dưới và việc sử dụng của chúng được mô tả chi tiết. Chúng có thể được chia thành các phần riêng biệt dựa trên loại của chúng. Các công tắc trong phần đầu tiên xác định nội dung nào sẽ bao gồm trong TOC và các công tắc trong phần thứ hai kiểm soát sự xuất hiện của TOC. & NBSP; nếu một công tắc không được liệt kê ở đây thì hiện tại nó không được hỗ trợ. & NBSP; Tất cả các công tắc sẽ được hỗ trợ trong các phiên bản trong tương lai. Chúng tôi đang thêm hỗ trợ thêm với mỗi bản phát hành. Công tắc đánh dấu nhập cảnh
Chèn các trường TCBạn có thể chèn một trường TC mới ở vị trí hiện tại của tài liệu trình tạo tài liệu bằng cách gọi phương thức documentBuilder.Insert_field và chỉ định tên trường là TC TC cùng với bất kỳ công tắc nào cần thiết. & NBSP; Tài liệu sử dụng DocumentBuilder. Sửa đổi một bảng nội dungĐịnh dạng của các mục trong TOC không sử dụng các kiểu ban đầu của các mục được đánh dấu, thay vào đó mỗi cấp được định dạng bằng cách sử dụng kiểu TOC tương đương. Ví dụ, cấp độ đầu tiên trong TOC được định dạng với kiểu TOC1, cấp độ thứ hai được định dạng với kiểu TOC2, v.v. Điều này có nghĩa là để thay đổi diện mạo của TOC, các phong cách này phải được sửa đổi. Trong aspose.words, các phong cách này được thể hiện bởi styledentifier độc lập của Locale.toc1 thông qua styleidentifier.toc9 và có thể được lấy từ bộ sưu tập tài liệu.TOC1 style, the second level formatted with the TOC2 style and so on. This means that to change the look of the TOC these styles must be modified. In Aspose.Words these styles are represented by the locale independent StyleIdentifier.TOC1 through to StyleIdentifier.TOC9 and can be retrieved from the Document.styles collection using these identifiers. Khi phong cách thích hợp của tài liệu đã được truy xuất, việc định dạng cho kiểu này có thể được sửa đổi. Bất kỳ thay đổi nào đối với các kiểu này sẽ được tự động phản ánh trên TOC trong tài liệu. Dưới đây ví dụ thay đổi một thuộc tính định dạng được sử dụng trong kiểu TOC cấp đầu tiên. Cũng rất hữu ích khi lưu ý rằng bất kỳ định dạng trực tiếp nào của đoạn văn (được định nghĩa trên chính đoạn và không theo kiểu) được đánh dấu để được bao gồm TOC sẽ được sao chép trong mục nhập trong TOC. Ví dụ: nếu kiểu tiêu đề 1 được sử dụng để đánh dấu nội dung cho TOC và phong cách này có định dạng in đậm trong khi đoạn văn cũng có định dạng in nghiêng trực tiếp cho nó. Mục nhập kết quả TOC sẽ không được in đậm vì đó là một phần của định dạng kiểu tuy nhiên nó sẽ được in nghiêng vì điều này được định dạng trực tiếp trên đoạn văn. Bạn cũng có thể kiểm soát định dạng của các dấu phân cách được sử dụng giữa mỗi mục nhập và số trang. Theo mặc định, đây là một đường chấm chấm được trải đều đến việc đánh số trang bằng cách sử dụng ký tự tab và dừng tab bên phải xếp hàng gần với lề phải. Sử dụng lớp Kiểu được truy xuất cho cấp độ TOC cụ thể mà bạn muốn sửa đổi, bạn cũng có thể sửa đổi cách chúng xuất hiện trong tài liệu. & NBSP; Để thay đổi cách thức xuất hiện trước đó. Từ đó, tab dừng có thể được truy xuất bằng cách gọi paragraphformat.TAB_STOPS và Tab Stop được sửa đổi. Sử dụng cùng một kỹ thuật này, tab có thể được di chuyển hoặc loại bỏ tất cả lại với nhau. Ví dụ dưới đây cho thấy cách sửa đổi vị trí của tab bên phải dừng trong các đoạn liên quan đến TOC. Xóa một bảng nội dung khỏi tài liệuMột bảng nội dung có thể được xóa khỏi tài liệu bằng cách xóa tất cả các nút được tìm thấy giữa nút FieldStart và Fieldend của trường TOC. & NBSP; Mã bên dưới thể hiện điều này. Việc loại bỏ trường TOC đơn giản hơn một trường bình thường vì chúng tôi không theo dõi các trường lồng nhau. Thay vào đó, chúng tôi kiểm tra nút FieldEnd thuộc loại fieldtype.field_toc, có nghĩa là chúng tôi đã gặp phải kết thúc của TOC hiện tại. Kỹ thuật này có thể được sử dụng trong trường hợp này mà không phải lo lắng về bất kỳ trường lồng nhau nào vì chúng tôi có thể cho rằng bất kỳ tài liệu được hình thành đúng nào sẽ không có trường TOC được lồng hoàn toàn trong trường TOC khác. Đầu tiên các nút FieldStart của mỗi TOC được thu thập và lưu trữ. TOC được chỉ định sau đó được liệt kê để tất cả các nút trong trường được truy cập và lưu trữ. Các nút sau đó được xóa khỏi tài liệu. Mẫu mã dưới đây trình bày cách xóa TOC được chỉ định khỏi tài liệu. Trích xuất bảng nội dungNếu bạn muốn trích xuất một bảng nội dung từ bất kỳ tài liệu Word nào, có thể sử dụng mẫu mã sau.
Làm thế nào để tôi có được bảng nội dung để tự động cập nhật trong Word?Nhấp vào TÀI LIỆU THAM KHẢO> Mục lục và sau đó chọn một bảng tự động của kiểu nội dung từ danh sách.LƯU Ý: Nếu bạn sử dụng một bảng thủ công theo kiểu nội dung, Word sẽ không sử dụng các tiêu đề của bạn để tạo bảng nội dung và sẽ không thể cập nhật nó một cách tự động.. Note: If you use a Manual Table of Contents style, Word won't use your headings to create a table of contents and won't be able to update it automatically.
Bảng Cập nhật F9 có trong Word không?Nhấn Ctrl+A để chọn toàn bộ tài liệu và sau đó nhấn F9.Nhấn khóa này cập nhật tất cả các bảng nội dung trong tài liệu, trong trường hợp bạn có nhiều hơn một.Pressing this key updates all tables of contents in the document, in case you have more than one.
Làm thế nào để bạn tạo một bảng nội dung trong Python?Cách dễ nhất để tạo các bảng trong Python là sử dụng hàm Table () từ thư viện bảng ... Để sử dụng chức năng này, trước tiên chúng ta phải cài đặt thư viện bằng PIP: PIP Cài đặt Tabulation .. Sau đó, chúng ta có thể tải thư viện: từ bảng nhập bảng lập bảng .. Làm thế nào để bạn cập nhật một bảng nghiên cứu nội dung?Chỉ cần nhấp chuột phải vào bảng nội dung và chọn trường Cập nhật.Bạn có thể chọn chỉ để cập nhật số trang hoặc cập nhật tất cả thông tin trong bảng nội dung của bạn.right-click the table of contents and select “Update Field.” You can choose either to update page numbers only or to update all information in your table of contents. |