Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

Tôi đang cố gắng thay đổi kiểu tiêu đề và chân trang trong tài liệu từ của tôi bằng Python-Docx. Tuy nhiên, sau khi xem qua tài liệu của các đối tượng tiêu đề và chân trang, tôi không thể tìm thấy cách thay đổi phong cách. Tôi đã đính kèm hình ảnh với những gì tôi muốn đạt được bằng cách sử dụng Python-docx.

Đây là những gì tôi muốn đạt được - áp dụng kiểu tiêu đề được xác định trước theo cách thủ công. Tên của phong cách là "cái nhìn sâu sắc".

Đây là những gì tôi hiện có - ở đây kiểu mặc định được áp dụng.

Đây là phong cách - Tôi chỉ đơn giản muốn áp dụng phong cách này bằng cách sử dụng Python -docx

Dù sao thì có cách nào để thay đổi kiểu tiêu đề và phong cách chân trang bằng cách sử dụng Python-docx.

Đã hỏi ngày 21 tháng 6 năm 2021 lúc 12:27Jun 21, 2021 at 12:27

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

4

Một tiêu đề hoặc chân trang trong một tài liệu Word không có phong cách. Thay vào đó, một đoạn văn có thể có một phong cách và một tiêu đề hoặc chân trang chứa một hoặc nhiều đoạn văn.

Vì vậy, cách bạn định dạng một tiêu đề với một phong cách là áp dụng phong cách đoạn đó cho mỗi đoạn của nó. Nhiều hoặc có lẽ hầu hết các tiêu đề chỉ có một đoạn văn duy nhất.

Hãy chắc chắn rằng bạn hiểu phần này của tài liệu: https://python-docx.readthedocs.io/en/latest/user/styles-undermiting.html và phần sau đây /en/latest/user/styles-using.html
https://python-docx.readthedocs.io/en/latest/user/styles-understanding.html and it's following section here:
https://python-docx.readthedocs.io/en/latest/user/styles-using.html

Theo mặc định, đoạn văn trong một tiêu đề hoặc chân trang mới có kiểu "tiêu đề" hoặc "chân trang" tương ứng. Vì vậy, bạn chỉ có thể thay đổi phong cách đó và điều đó sẽ thay đổi giao diện của các tiêu đề và chân trang.

Nếu bạn muốn áp dụng một phong cách khác, bạn sẽ cần đảm bảo rằng phong cách đó có trong tài liệu bắt đầu. Quá trình này được giải thích trong các trang tài liệu được liên kết ở trên.

Đã trả lời ngày 22 tháng 6 năm 2021 lúc 18:12Jun 22, 2021 at 18:12

Scannyscannyscanny

24,9K4 Huy hiệu vàng49 Huy hiệu bạc75 Huy hiệu đồng4 gold badges49 silver badges75 bronze badges

Microsoft Word (MS)- một trong các tiện ích từ bộ Microsoft Office là một trong những phần mềm phổ biến trong việc tạo ra file document, hỗ trợ đọc và ghi nội dung từ đơn giản đến phức tạp. Mặc dù con người có thể trực tiếp tạo và viết nội dung lên file MS, tuy nhiên trong rất nhiều tác vụ cần máy tính xử lý và tự động tạo nội dung trên các file MS. Ví dụ bạn đọc nội dung từ file pdf và muốn chuyển nội dung sang file docx hoặc bạn đang phát triển một mô hình xử lý ngôn ngữ tự nhiên và cần đọc dữ liệu đầu vào là các file MS thì Python-Docx là một trong những thư viện rất đáng để bạn lựa chọn. (MS)- một trong các tiện ích từ bộ Microsoft Office là một trong những phần mềm phổ biến trong việc tạo ra file document, hỗ trợ đọc và ghi nội dung từ đơn giản đến phức tạp. Mặc dù con người có thể trực tiếp tạo và viết nội dung lên file MS, tuy nhiên trong rất nhiều tác vụ cần máy tính xử lý và tự động tạo nội dung trên các file MS. Ví dụ bạn đọc nội dung từ file pdf và muốn chuyển nội dung sang file docx hoặc bạn đang phát triển một mô hình xử lý ngôn ngữ tự nhiên và cần đọc dữ liệu đầu vào là các file MS thì Python-Docx là một trong những thư viện rất đáng để bạn lựa chọn.

Hôm nay mình xin giới thiệu các bạn cách tạo ra tự động file MS cũng như các tính năng thêm, sửa, xóa các nội dung dưới sự hỗ trợ của thư viện Python Docx.Python Docx.

1. Cài đặt thư viện

Nếu các bạn đang sử dụng anaconda, các bạn có thể dễ dàng cài đặt bằng cách sau đây:

pip install python-docx

2. Khởi tạo file

Để mở một file đã tồn tại trước đó, bạn sử dụng câu lệnh sau

from docx import Document

document = Document('existing-document-file.docx')

Nếu file này chưa tồn tại, bạn sử dụng câu lệnh sau:

document = Document()

Sau khi bạn khởi tạo file, bạn có thể chỉnh sửa nội dung của file MS như thêm đoạn văn, thêm bảng, ... thông qua biến document như ví dụ bên trên. Sau khi hoàn thiện bạn có lưu lại những thay đổi bằng câu lệnh sau :

document.save(filename)

Ở đây, filename là tên file mà bạn muốn lưu. Tất nhiên đuôi là .docx nhé. .docx nhé.

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

3. Heading, title

Thư viện python-docx hỗ trợ ghi phần title hoặc heading của văn bản theo nhiều level mà người dùng chỉ định.title hoặc heading của văn bản theo nhiều level mà người dùng chỉ định.

  • Content: nội dung title hoặc heading
  • Level: bậc của heading (0, 1, 2, ...). Số càng nhỏ font chữ càng lớn.
document.add_heading(content, level)

3.1. Title

Theo mặc định của python-docx, title có level là 0

document.add_heading("This is a title part, level=0)

Ta có kết quả tương ứng sẽ là :

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

3.2. Heading

Đối với các phần heaing, ta có các level 1, 2, 3....

  • Level 1
document.add_heading("This is a heading 1", level=1)

Kết quả tương ứng :

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

  • Level 2
document.add_heading("This is a heading 2", level=2)

Kết quả tương ứng :

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

4. Đoạn văn (paragraph)

Trong các loại văn bản thông thường, chúng ta có hai cách biểu diễn nội dung của một trang đó là:

4.1. Layout truyền thống

Với layout kiểu truyền thống, chúng ta ghi nội dung vào file MS như sau:

document.add_paragraph(content)

Kết quả tương ứng:

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx

4.2. Layout dạng cột

Để tạo ra được các văn bản dạng cột. Chúng ta cần dùng đến khái niệm Section. Mỗi section có thể chứa nhiều các đoạn văn. Mỗi section sẽ tương đương với một page và chúng ta thông qua section để biểu diễn nội dung cho một page.Section. Mỗi section có thể chứa nhiều các đoạn văn. Mỗi section sẽ tương đương với một page và chúng ta thông qua section để biểu diễn nội dung cho một page.

Tạo layout cột cho section :

from docx.enum.section import WD_SECTION_START

def set_number_of_columns(section, cols):
    """ sets number of columns through xpath. """
    WNS_COLS_NUM = "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}num"
    section._sectPr.xpath("./w:cols")[0].set(WNS_COLS_NUM, str(cols))
    
section = document.add_section(WD_SECTION_START.NEW_PAGE)
# col_nb is number of column layout
set_number_of_columns(section, col_nb)

Sau đó chúng ta thực hiện thêm đoạn văn giống như kiểu layout truyền thống. Đoạn văn sẽ được thêm theo thứ tự các cột, từ trái sang phải.

from docx import Document

document = Document('existing-document-file.docx')
0

Ngoài ra, chúng ta cũng có thể thêm phần căn lề (trái, phải, giữa ) cho đoạn văn như sau:

from docx import Document

document = Document('existing-document-file.docx')
1
  • Căn lề trái
from docx import Document

document = Document('existing-document-file.docx')
2
  • Căn lề phải
from docx import Document

document = Document('existing-document-file.docx')
3
  • Căn lề giữa
from docx import Document

document = Document('existing-document-file.docx')
4
  • Căn lề hai bên
from docx import Document

document = Document('existing-document-file.docx')
5

4.3. Thêm câu cho đoạn văn

Thư viện python-docx hỗ trợ chèn thêm câu riêng lẻ vào trong đoạn văn đã được khởi tạo:

from docx import Document

document = Document('existing-document-file.docx')
6

4.3.1. Highlight background

Bạn cũng có thể highlight background cho từng câu bằng các màu yêu thích như sau:(highlight là tên màu )

from docx import Document

document = Document('existing-document-file.docx')
7

4.3.2. In đậm, nghiêng, gạch chân

Bạn cũng có thể thêm highlight cho bằng thêm in đậm, in nghiêng hay gạch chân như khi người sử dụng trực tiếp trên file MS.

from docx import Document

document = Document('existing-document-file.docx')
8

5. Picture

Bạn cũng có thể chèn ảnh trưc tiếp vào python-docx bằng đường dẫn tới file ảnh cần chèn hoặc ảnh đã được biểu diễn dạng ma trận. Bạn cũng có thể điều chỉnh kích thước ảnh phù hợp với văn bản của mình.

from docx import Document

document = Document('existing-document-file.docx')
9

Lời kết

Python-docx là một thư viện hỗ trợ mạnh mẽ về cách tạo lập hay sửa đổi văn bản docx. Tuy nhiên để có thể tận dụng hết các tính năng của Microsoft Word thì các bạn cần tìm hiểu sâu thêm các api của Mircosoft Word. Còn nếu bạn chỉ muốn sử dụng tính năng đơn giản thì python-docx vẫn là sự lựa chọn hết sức tuyệt vời. Cảm ơn các bạn đã theo dõi bài đọc của mình là một thư viện hỗ trợ mạnh mẽ về cách tạo lập hay sửa đổi văn bản docx. Tuy nhiên để có thể tận dụng hết các tính năng của Microsoft Word thì các bạn cần tìm hiểu sâu thêm các api của Mircosoft Word. Còn nếu bạn chỉ muốn sử dụng tính năng đơn giản thì python-docx vẫn là sự lựa chọn hết sức tuyệt vời. Cảm ơn các bạn đã theo dõi bài đọc của mình

Hướng dẫn python-docx header style - kiểu tiêu đề python-docx