Python-docx thêm kích thước hình ảnh

Ngoài "Tạo văn bản", Word có thể được sử dụng để "Chèn hình ảnh, Hình dạng và Bảng" và "Thiết lập Đầu trang/Chân trang", "xác định kiểu" và hơn thế nữa. Vì lý do này, các bài viết được giải thích dưới dạng một chuỗi nhiều bài viết về mỗi chủ đề, như thể hiện trong mục lục sau

Nội dung chính Hiển thị

  • 1. Chèn image vào tài liệu
  • 1. 1 Chèn hình ảnh vào đoạn văn ( Đối tượng đoạn văn )
  • 1. 2 Chèn hình ảnh vào câu
  • 2. Chèn bảng ( Object table)
  • 3. Mục Triển khai (quản lý trang)
  • 3. 1 Mục là gì?
  • 3. 2 Nhận và Đặt Phần ( Đối tượng Phần )
  • 3. 3 Sử dụng Phần (Đặt Đầu trang/Cân trang)
  • 4. BẢNG XÁC SUẤT

<【Python×Word】Danh sách nội dung>Python×Word】Danh sách nội dung>

  • Phần. 1】Tổng quan về Thư viện và Cơ bản về Tài liệu >>
    1. Cấu trúc phân cấp của đối tượng trong python-docx >>
    2. Quản lý câu theo đoạn văn >>
    3. Định dạng từng ký tự >>
  • 【Phần. 2】Chèn hình ảnh và bảng, phần vào tài liệu >>
    1. Chèn hình ảnh trực tuyến >>
    2. Chèn bảng >>
    3. Quản lý cấu trúc tài liệu trong phần >>
  • 【Phần. 3】Cách sử dụng và đăng ký Kiểu dáng >>
    1. Áp dụng Kiểu có sẵn >>
    2. Kiểu đoạn văn >>
    3. Kiểu ký tự >>
    4. Kiểu bảng >>
    5. Đăng ký Kiểu do người dùng xác định >>

Trong phần thứ hai của loạt bài này, chúng tôi sẽ giải thích “ Cách chèn hình ảnh và bảng vào tài liệu Word ” và . Setting up headers and footers” as examples of how to use sections.

Mặc dù nội dung chính của Tài liệu Word là văn bản, nhưng việc sử dụng hiệu quả Hình ảnh và Bảng có thể nâng cao sức hấp dẫn và mức độ tin cậy của nó. Đây là nội dung đặc biệt cần thiết cho các văn bản chính thống, văn bản như văn luận, bình luận

Đối với các tài liệu lớn hơn, bạn cũng nên xem xét phát triển khai thác các phần, là các đơn vị quản lý trang

“python-docx” có thể thực hiện tất cả những điều này và hơn thế nữa .

Hãy đồng hành cùng chúng tôi để xem hết bài viết này, vì bạn sẽ có thể “ làm và hiểu ” những điều sau<

Những điều bạn có thể học được từ bài viết này

  • Chèn hình ảnh (đối tượng InlineShape) vào đoạn văn
  • Định nghĩa bảng (Bảng đối tượng) và chèn vào đoạn văn
  • Tổng quan về các đối tượng Mục liên quan đến quản lý trang, không hạn như tiêu đề và lề, v. v

Việc sử dụng các lớp và hàm khác nhau được giới thiệu trong bài viết này chỉ là một ví dụ. Các tùy chọn đối số bị bỏ qua, vì vậy vui lòng tham khảo tài liệu chính thức ở trên để biết chi tiết và làm rõ nếu cần

https. //trăn-docx. đọcthedocs. io/vi/mới nhất/

Bây giờ, từ phần tiếp theo, chúng tôi sẽ giải thích cách sử dụng thư viện “python-docx”

nội dung

  • 1. Chèn image vào tài liệu
    • 1. 1 Chèn hình ảnh vào đoạn văn ( Đối tượng đoạn văn )
    • 1. 2 Chèn hình ảnh vào câu
  • 2. Chèn bảng ( Object table)
  • 3. Mục Triển khai (quản lý trang)
    • 3. 1 Mục là gì?
    • 3. 2 Nhận và Đặt Phần ( Đối tượng Phần )
    • 3. 3 Sử dụng Phần (Đặt Đầu trang/Cân trang)
  • 4. BẢNG XÁC SUẤT

スポンサーリンク

1. Chèn image vào tài liệu

Python-docx thêm kích thước hình ảnh

This section mô tả quy trình chèn ảnh vào tài liệu

Hình ảnh có thể được đặt trong đoạn văn ( Đối tượng đoạn văn ). Nó có thể được nhúng trong văn bản ( Đối tượng chạy ) tạo nên đoạn văn cũng vậy.

Python-docx có thể xử lý hình ảnh và biểu đồ trong tài liệu Word miễn phí là chúng ở dạng InlineShape(Picture)[Text Layer], nhưng FloatingShape[Drawing Layer] không được hỗ trợ vì .

Nội tuyến (TextLayter) có nghĩa là nhúng vào đoạn văn hoặc một phần của câu hỏi và đề cập đến hệ thống phân cấp trong ký tự đó và hình ảnh giao thoa với nhau về chiều cao, chiều rộng và ngắt dòng

Mặt khác, Nổi (Lớp vẽ), phân biệt các lớp sắp xếp cho đoạn văn và hình ảnh, cho phép sắp xếp hình ảnh và biểu đồ tự do mà không thể xen kẽ nhau

Hiểu hình ảnh và các hình dạng khác

Tại thời điểm viết bài, python-docx chỉ hỗ trợ nội tuyến ảnh. Hình ảnh nổi có thể được thêm vào. Nếu bạn có trường hợp sử dụng đang hoạt động, hãy gửi yêu cầu tính năng trên trình theo dõi vấn đề

https. //trăn-docx. đọcthedocs. io/vi/mới nhất/người dùng/hình dạng. html

Xin ra, tôi rất tiếc phải nói rằng “python-docx” dường như không hỗ trợ thao tác với hình dạng và SmartArt, ngay cả với InlineShape. Expect future updates along with support for Floating (Drawing Layer).

Sau đây là bảng tóm tắt về trạng thái hỗ trợ hình ảnh và đồ họa. (Hình1)

Hình1. Tóm tắt trạng thái hỗ trợ đối tượng Shape

Đắp ra, có hai cách để đặt và truy xuất hình dạng cũng như SmartArt [Hình dạng trong dòng/hình nổi] . Bạn có thể sử dụng “python-docx” và “pywin32” tùy theo mục đích của bạn.

  • Nhận và đặt định dạng đối tượng Form trong “thư viện pywin32”
  • Sau khi chuyển tài liệu Word thành tệp XML, cấu trúc DOM được phân tích cú pháp để lấy các đối tượng

Bây giờ, từ phần tiếp theo, chúng ta sẽ giải thích các lớp và phương thức để thêm hình ảnh vào đoạn văn

1. 1 Chèn hình ảnh vào đoạn văn ( Đối tượng đoạn văn )

Hình ảnh có thể được đặt thành một đoạn văn. Nếu bạn chỉ muốn thêm một hình ảnh vào đoạn mới hơn, hãy sử dụng phương thức add_picture() trong Tài liệu đối tượng với định dạng sau.

đối tượng đoạn văn

Đối tượng tài liệu . add_picture(img_path, chiều rộng, height)


arg. img_path . Chỉ định tên tệp hình ảnh với đường dẫn (jpg/png…)

arg. chiều rộng . Set the image width (option)

arg. chiều cao . Đặt chiều cao hình ảnh (tùy chọn)

trả về. InlineShape Đối tượng

Tệp hình ảnh được hỗ trợ ở định dạng jpg/png, với các tham số chiều rộng/ chiều cao để chỉ kích thước . Đơn vị được xác định chỉ bằng mm (milimet) hoặc Inch, nhưng nếu bỏ qua, kích thước ban đầu sẽ được áp dụng.

Nếu chỉ một số trong chúng được định nghĩa duy nhất, thì Tỷ lệ khung hình tương tự sẽ tự động được điều chỉnh

MẪU (1)

Hãy để chúng tôi chỉ cho bạn cách sử dụng nó với mã mẫu

Tóm tắt là ba hình ảnh được dán mã bằng phương thức add_picture(). Lưu ý rằng một đoạn văn mới được thêm vào và một hình ảnh được thêm vào

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH # Paragraph position definition
from docx.shared import Mm                    # Definition of unit and color

doc1=Document()

# Paragraph "1"
p1 = doc1.add_paragraph('Insert image1(png).')
# Insert png image (50mm width) in paragraph "2”
doc1.add_picture('./picture/picture1.png', width=Mm(50))

# Paragraph "3"
p3 = doc1.add_paragraph('Insert image2(png).')
# Insert jpeg image (50mm width) in paragraph "4”
doc1.add_picture('./picture/picture2.jpg', width=Mm(50))

# Paragraph "5"
p5 = doc1.add_paragraph('Insert image3(png).')
# Insert png image (50mm width) in paragraph "6”
doc1.add_picture('./picture/picture3.png', height=Mm(50))

print(len(doc1.paragraphs)) # >>6 Find out the number of paragraph

for p_index in [0, 1, 4, 5]:
    # The image is recognized as InlineShape object, and the insertion position
    # can be roughly specified with the alignment property.

    doc1.paragraphs[p_index].paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER

doc1.save('InsertImage_List1.docx')

Kết quả thực hiện của as after. Ba hình ảnh đã được thêm vào và số lượng đoạn văn là sáu, bao gồm cả những đoạn được thêm vào bằng phương thức add_picture()

Bạn cũng có thể kiểm tra xem định dạng đoạn văn có được áp dụng hay không bằng cách căn giữa các căn chỉnh trong thuộc tính căn chỉnh của đoạn văn (Đối tượng đoạn văn).

Tệp kết quả thực hiện (. docx) có thể được tải xuống từ

ChènImage_List1. docxTải xuống

Hình2. Kết quả thực hiện List1

1. 2 Chèn hình ảnh vào câu

Hình ảnh cũng có thể được chèn vào bất cứ đâu trong văn bản. Các câu (từ và ký tự) được quản lý bởi đối tượng Run, nhưng phương thức add_picture() cũng được cung cấp trong đối tượng Run. Định dạng hoàn toàn giống với định dạng trong đối tượng Đoạn văn.

Run object

Đối tượng tài liệu . add_picture(img_path, chiều rộng, height)


arg. img_path . Chỉ định tên tệp hình ảnh với đường dẫn (jpg/png…)

arg. chiều rộng . Set the image width (option)

arg. chiều cao . Đặt chiều cao hình ảnh (tùy chọn)

trả về. InlineShape Đối tượng

Cách sử dụng cũng giống như khi đặt nó trong đoạn. Một đối tượng InlineShape được chèn vào cùng một dòng với nội dung văn bản

MẪU (2)

Đây là một ví dụ khác về việc sử dụng phương thức add_picture() với mẫu mã.

from docx import Document
from docx.shared import Mm

doc1=Document()

# Paragraph "1"
p1 = doc1.add_paragraph(style='Title')

# Inserting image in the middle of sentence with the add_picture method
p1.add_run().add_picture('./picture/picture1.png', width=Mm(15))
p1.add_run(' Inserting an image with ')

p1.add_run().add_picture('./picture/picture2.jpg', width=Mm(15))
p1.add_run(' the add_pictur of the Run object ')

p1.add_run().add_picture('./picture/picture3.png', height=Mm(15))


doc1.save('InsertImage2_List2.docx')

Kết quả thực thi như sau

Đối với đoạn có 'Kiểu tiêu đề', 'Văn bản' và 'Hình ảnh' được chèn phiên bản luân phiên khi thêm đối tượng Run

Tệp kết quả thực hiện (. docx) có thể được tải xuống từ

ChènImage2_List2. docxTải xuống

Hình 3. Kết quả thực thi của List2

スポンサーリンク

2. Chèn bảng ( Object table)

Table can be added to the document

Bảng được quản lý dưới dạng đối tượng Bảng trong python-docx. Đối tượng Bảng lấy phương thức add_table() của đối tượng Tài liệu theo định dạng sau.

bảng đối tượng

Đối tượng tài liệu . add_table(hàng, cols, style)


arg:hàng . Chỉ định số hàng trong bảng

arg:cols . Chỉ định cột số trong bảng

arg:kiểu . Chỉ định kiểu sẽ được đặt cho bảng (tùy chọn)

trả về. Bảng đối tượng

Số lượng hàng và cột trong bảng được chỉ định trong arg. hàng/cột tương ứng.

Mẫu (kiểu xây dựng sẵn), chẳng hạn như sắc thái và hình ảnh của toàn bộ bảng, có thể chỉ được định nghĩa trong arg. kiểu dáng dưới dạng chuỗi.

Kiểu dựng sẵn cung cấp các thông tin sau. (Hình4)

Hình4. Danh sách kiểu dựng sẵn cho Bảng (trích đoạn)

Đối tượng Bảng còn bao gồm các đối tượng Cột, đối tượng Hàng và đối tượng Ô. (Hình5)

Đối tượng Bảng là tập hợp các hàng, cột hoặc ô và đối tượng Cột/Hàng cũng là tập hợp các ô. Do đó, các đối tượng cấp cao hơn có thể lặp lại truy xuất phần tử cấp thấp hơn

Hình5. Các thành phần của bảng đối tượng

Có nhiều phương thức và thuộc tính liên quan trong bảng đối tượng. Những cái chính như sau

bảng đối tượng

< Thêm cột vào cuối bên phải >

Bảng đối tượng . add_column( chiều rộng)

arg: width . Chỉ định chiều rộng cột

trả về. Cột đối tượng / Thêm vào bộ sưu tập cột


< Thêm Hàng vào cận bên dưới >

Bảng đối tượng . add_row()

trả về. Object rows / Thêm vào bộ sưu tập hàng


< Nhận cột tập hợp (Cột)>

Bảng đối tượng . cột thuộc tính

trả về. Bộ sưu tập cột

( You can only the column tool to a index, column[index])


< Lấy tập hợp hàng (Hàng)>

Bảng đối tượng . hàng thuộc tính

trả về. Bộ sưu tập hàng

( It can only the row tools can doing index, rows[index])


< Lấy ô ( Ô đối tượng)>

Bảng đối tượng. ô( row_idx , col_idx)

arg. row_idx . Chỉ định số hàng của ô mua lại. Ô A1 is (0, 0) standard

arg. col_idx . Chỉ định số cột của ô mua lại. Ô A1 is (0, 0) standard

return: Ô đối tượng

Các thuộc tính chính khác liên quan đến các đối tượng Hàng, Cột và Ô bao gồm. Ô đối tượng có nhiều thuộc tính khác nhau. Bạn cũng có thể thêm một đối tượng Đoạn văn vào một ô để làm điều tương tự như văn bản nội dung. ( Đối với đoạn văn, vui lòng tham khảo bài viết đầu tiên trong loạt bài này. )

【Hàng/Cột/ Ô đối tượng 】【Chức năng】【Khác/Chi tiết】 Cột đối tượng . Thuộc tính chiều rộng property Đặt cột chiều rộng Đối tượng hàng . Chiều cao thuộc tính Thuộc tínhĐặt chiều cao của hàng Ô đối tượng . text property Đặt/Nhận giá trị cho ô Đối tượng ô . add_paragraphs(văn bản, kiểu)Add paragraphSimilar to paragraph of text

bảng 1. Thuộc tính chính của đối tượng hàng, cột và ô

MẪU (3)

Đây là đoạn mã mẫu để thiết lập Bảng trong tài liệu

Dưới đây là tổng quan về mã. Trước tiên, hãy bắt đầu với việc xác định bảng có 4 hàng và 4 cột ô. Sau đó, mỗi đối tượng Ô được truy cập và các giá trị cũng như định dạng của nó được đặt

from docx import Document
from docx.enum.table import WD_ALIGN_VERTICAL # Definition of placement location
from docx.shared import Mm  # Definition of unit and color

# Define column labels
col_names = ['Name', 'Belongs', 'Salary']

# Definition of data contents
data = [['Ryunosuke Akutagawa', 'General.Dep', '245000'],
       ['Soseki Natsume', 'Account.Dep', '350000'],
       ['Takuboku Ishikawa', 'Sales.Dep', '298000']]

doc1 = Document()

#(A)---------------------------------------------------------------------------------------------------------------
# Obtain a 1-row, 3-column Table object
tb1 = doc1.add_table(rows=1, cols=len(col_names), style='Colorful Shading Accent 1')

#(B)---------------------------------------------------------------------------------------------------------------
# Set the column name to the cell in the first row
for i, cell in enumerate(tb1.rows[0].cells): # Get collection of Cell objects
    cell.text = col_names[i]                  # Set value to Cell object

#(C)---------------------------------------------------------------------------------------------------------------
# Set values while adding rows (Row objects)
for d in data:
    row = tb1.add_row()   # Add Row Object
    row.height = Mm(8.0)  # Specify row height as 8mm
    
    for i, cell in enumerate(row.cells): # Obtaining Cell object
        cell.text = d[i]                  # Set value to Cell object
        cell.vertical_alignment = WD_ALIGN_VERTICAL.BOTTOM  # Set placement position in the cell

#(C)---------------------------------------------------------------------------------------------------------------
# Add column (Column object) 
tb1.add_column(Mm(15.0))       # Add row 15 mm wide
print(tb1.columns[3].width.mm) # >>14.993

tb1.cell(0, 3).text = 'Remarks'   # Set titles for additional column


doc1.save('InsertTable_List3.docx')

Bây giờ, hãy để tôi giải thích những điểm chính

Chuẩn bị tệp dữ liệu cho bảng ở dòng 6 và 9

Dòng 17:【Add Objects Table】

Phương thức add_table() tạo bảng đối tượng có kích thước 1×3. Set mannable table type to arg. style , và lưu trữ các đối tượng Bảng trong biến tb1.

Dòng 21,22:【Đặt nhãn cho ô】

Bộ sưu tập ô có được nhờ thuộc tính ô được mở rộng bằng lệnh cho. Sau đó, đối tượng Cell được nhận. Sau đó, đặt nhãn cho từng ô bằng thuộc tính văn bản của đối tượng Ô đã thu được.

Dòng 26-28:【Thêm hàng(Đối tượng hàng)】

Số lượng hàng (đối tượng Hàng) bắt buộc được thêm bằng cách sử dụng phương thức add_row() . Thuộc tính chiều cao cũng chỉ định chiều cao của hàng.

Dòng 30-32:【Đặt giá trị trong ô】

Mở rộng từ đối tượng Hàng sang đối tượng Ô bằng câu lệnh Dành cho và đặt giá trị của Danh sách.

Đồng thời, thuộc tính vertical_alignment chỉ định căn lề dưới cùng trong ô.

Cuối cùng, hãy thêm đối tượng Coloumn bằng phương thức add_column() để thêm cột “Nhận xét”, hoàn thành bảng 4× .

Kết quả thực thi như sau

Kiểu dáng, kích thước, chiều rộng, chiều cao và các kích thước khác đã được chỉ định và bảng đẹp mắt đã được thêm vào

Tệp kết quả thực hiện (. docx) có thể được tải xuống từ

ChènTable_List3. docxTải xuống

Hình6. Kết quả thực thi List3

スポンサーリンク

3. Mục Triển khai (quản lý trang)

Trong phần này, chúng tôi sẽ giải thích cách quản lý các trang theo phần. python-doc cung cấp chức năng phần

3. 1 Mục là gì?

“Section” trong Word là đơn vị quản lý trang. Cụ thể, nó cho phép bạn đặt kích thước trang, lề, hướng giấy, đầu trang/cuối trang… cho từng trang hoặc phạm vi trang

Ví dụ: Hình 7 hiển thị một trường hợp trong đó tất cả 7 trang của Tài liệu Word được phân thành 3 phần (A, B và C) để quản lý trang. Bạn có thể đặt và thay đổi thông tin trang thành thông tin đầu trang và chân trang và hướng giấy cho từng phạm vi trang theo cách này

Hình7. Các phần trong Word

Trong python-docx, các phần được quản lý bởi Phần đối tượng .

3. 2 Nhận và Đặt Phần ( Đối tượng Phần )

Để thêm đối tượng Phần mới hoặc lấy đối tượng hiện có, hãy sử dụng phương thức add_section(). trong đối tượng Tài liệu, tương ứng.

Nhận phần đối tượng

< Thêm mục mới >

Đối tượng tài liệu . add_section(start_type)

arg. start_type . Mục chọn loại sẽ được bổ sung từ định nghĩa “lớp WD_SECTION_START”.

trả về. Phần đối tượng


< Nhận phần >

Đối tượng tài liệu . phần thuộc tính

trả về. Bộ sưu tập của Object Object

The arg. start_type of add_section() method only a Enum was verify in WD_SECTION_START . Sự tương ứng với giao diện người dùng Word được hiển thị trong Fig8. . Sự tương ứng với giao diện người dùng Word được hiển thị trong Fig8.

(“Menu Bố cục” -> “Tab Thiết lập Trang” -> “Phân cách”)

Hình8. Loại ngắt

Các thuộc tính liên quan của đối tượng Phần cho phép “Thiết lập trang” được chỉ định chi tiết cho từng Phần. Tham khảo hình bên dưới để xem các thuộc tính nào được hỗ trợ bởi các mục cài đặt trên “Hộp điện thoại thiết lập trang” trong giao diện người dùng Word

< Cài đặt ký quỹ >

Hình9. đối tượng phần

< Cài đặt giấy >

Hình10. đối tượng phần

Hình11. đối tượng phần

Đây là một điều cần lưu ý về các đối tượng Mục. Nhiều đối tượng Phần có thể được xác định trong một Tài liệu duy nhất, nhưng trong cấu hình mặc định, tất cả chúng đều nằm trong mối quan hệ kế thừa (được liên kết với nhau)

Điều này có nghĩa là phần hiện tại không thể được định cấu hình như dự kiến, bởi vì phần hiện tại có nghĩa cho một phần trước đó

Để ngăn chặn điều này, phải sử dụng thuộc tính is_linked_to_previous sau đó để phá vỡ mối quan hệ kế thừa (được đặt thành công) . (* Lưu ý rằng điều này không đúng. )

Mục đối tượng

< Kế thừa phần >

Đối tượng mục . thuộc tính is_linked_to_previous thuộc tính

Đúng . Kế thừa thông tin phần trước

Sai . Chỉ phản hồi cài đặt bản cài đặt của phần hiện tại

Để làm ví dụ về việc sử dụng Phần, phần tiếp theo sẽ thảo luận về cách áp dụng “Đầu trang/Chân trang”

3. 3 Sử dụng Phần (Đặt Đầu trang/Cân trang)

Mục đích của việc sử dụng phần thường được tìm thấy trong cài đặt “Đầu trang và Chân trang” của trang. Phần này cung cấp các ví dụ cụ thể về cài đặt “Đầu trang và Chân trang”

Đối tượng Header and Footer được lấy từ thuộc tính header and footer of the Section object.

Đối tượng _Header/_Footer

Đối tượng mục . thuộc tính tiêu đề tài sản

trả về. _ Đối tượng tiêu đề


Đối tượng mục . chân trang thuộc tính

trả về. _ Đối tượng chân trang

Để thêm nội dung vào đối tượng _Header(_Footer) đã thu được, vui lòng thêm đoạn văn bằng cách sử dụng phương thức add_paragraph() . Vui lòng tham khảo

Các phương thức chính khác và các thuộc tính khác liên quan đến Header (Footer) như sau

Đối tượng_Header(_Footer)【Chức năng】【Khác/Chi tiết】add_paragraph(văn bản< . số hàng, kiểu dáng)Thêm đoạn vănĐối tượng đoạn vănadd_table(rows, cols, width)Add tablerows:number of rows, cols . number of column, width . chiều rộngis_linked_to_previous thuộc tínhThông tin đầu trang (chân trang) trước đó có được kế thừa hay khôngTrue:Valid/False:Invalid

cấm 2. Các phương thức và thuộc tính chính trong đối tượng _Header(_Footer)

MẪU (4)

Đây là một ví dụ về mã sử dụng đối tượng Mục

Định dạng trang (khổ giấy, lề, hướng vào) và đầu trang và chân trang được chọn và đặt cho từng phần

from docx import Document
from docx.enum.section import WD_SECTION

from docx.shared import Mm  # Defined unit and color
from docx.enum.section import WD_ORIENT # The page orientation is defined

from docx.enum.text import WD_ALIGN_PARAGRAPH


# Create new Document
doc1 = Document()

# Specify "-1" for index to get current section
sec1 = doc1.sections[-1]

# Check the current section type
# Newly created document contain one section (NEW_PAGE) by default
print(sec1.start_type) # >>NEW_PAGE (2)

#-------------------------------------------------------------------------------------
# Examine the format of page in Section1

# Section1 page setup (page orientation, width, height)
print(sec1.orientation, sec1.page_width.mm, sec1.page_height.mm) # >>PORTRAIT (0) 215.9 279.4

# Section1 Page Setup(Margin(Left), Margin(Right))
print(sec1.left_margin.mm, sec1.left_margin.mm) # >> 31.75 31.75

# Section1 Page Setup (Margin(Top), Margin(Bottom))
print(sec1.top_margin.mm, sec1.bottom_margin.mm) # >> 25.4 25.4

#-------------------------------------------------------------------------------------
# Set the header and footer for section1

# Get the Header object
hd1 = sec1.header

# Add a paragraph(Header)
hd1_pg = hd1.add_paragraph('CONFIDENTIAL_マル秘')

# Get the Footer object
ft1 = sec1.footer

# Add a paragraph(Footer)
ft1_pg = ft1.add_paragraph('株式会社 Pythonでもっと自由を')

# Set paragraph position to right end
ft1_pg.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.RIGHT


#-------------------------------------------------------------------------------------
# Add section2 to format the page

# Add a new section (NEW_PAGE)
sec2= doc1.add_section(WD_SECTION.NEW_PAGE)

print(sec2.start_type) # >>NEW_PAGE (2)

# Change the print orientation to landscape
sec2.orientation = WD_ORIENT.LANDSCAPE

# Set the width of section2
sec2.page_width = Mm(279.4)

#  Set the height of section2
sec2.page_height = Mm(215.9)


#-------------------------------------------------------------------------------------
# Set the header and footer for section2

hd2 = sec2.header
ft2 = sec2.footer

# Can cite the header footer of the previous section


hd2.is_linked_to_previous = False # Do not cite Section1 Header

ft2.is_linked_to_previous = True # Cite the footer in Section1

doc1.save('InsertSection_List4.docx')

Bây giờ, hãy để tôi giải thích những điểm chính

Dòng 14:【Phần tài liệu mới】

Thuộc tính phần được sử dụng để truy xuất tất cả các phần đối tượng (Bộ sưu tập) trong tài liệu. Lập mục này cho phép bạn truy xuất các đối tượng Phần riêng lẻ. Ngoài ra, chỉ định [-1] sẽ nhận được phần trang hiện tại. (Đối với tài liệu mới tạo như tài liệu này, Phần (NEW_PAGE) đã được chuẩn bị trước. )

Dòng 24,26,30:【Kiểm tra định dạng trang】

Các thuộc tính của đối tượng Mục kiểm tra thông tin định dạng của trang. Thuộc tính orientation kiểm tra hướng trang, thuộc tính page_* kiểm tra . Đơn vị được chuyển đổi sang milimét bằng thuộc tính *_margin property kiểm tra lề. Đơn vị được chuyển đổi sang milimét bằng mm .

Dòng 36-48:【Cài đặt Header/Footer】

Đầu trang và Chân trang được đặt cho Phần đối tượng. Các đối tượng được lấy theo cách sử dụng tiêu đềthuộc tính chân trang , tương ứng. Nội dung được quản lý giống như văn bản nội dung, sử dụng đối tượng Đoạn văn. Nó có thể bao gồm nhiều đoạn văn và các cách sử dụng khác được xử lý như nhau. Nó có thể bao gồm nhiều đoạn văn và các cách sử dụng khác được xử lý như nhau.

Một phần khác được thêm vào trong dòng 55~66 (var. ”sec2″). Vì loại được đặt thành “NEW_PAGE”, phần này sẽ được áp dụng cho trang thứ hai và các trang tiếp theo

Dòng 72-80:【Áp dụng phần thứ hai】

Thiết lập đầu trang và chân trang cho Phần thứ hai (sec2). Khi tồn tại nhiều Section, cần chú ý đến mối quan hệ kế thừa (liên kết) giữa các Section

Thuộc tính is_linked_to_previous cho phép bạn chọn trích dẫn thông tin đầu trang và chân trang từ một phần trước hay không. Trong ví dụ này, tiêu đề được đặt thành “Sai” để nó không được trích dẫn (sec2 được áp dụng) và chân trang được đặt thành “True” cho thông tin chân trang trước đó được trích dẫn.

* Xin lưu ý rằng rất dễ nhầm lẫn giữa hai

Kết quả thực thi như sau

Định dạng trang (kho giấy, lề, hướng giấy), Header and Footer can be setting for each section (trang)

  • Trang 1 (Phần 1). with Đầu trang/Chân trang, direction vertical
  • Trang 2 (Phần 2). Chân trang (liên kết đến Phần 1), hướng ngang

Hình12. Kết quả thực hiện List4

4. BẢNG XÁC SUẤT

It thế nào?

Trong bài viết này, chúng tôi đã giải thích cách sử dụng thư viện “ python-docx ” để chèn bảng hình ảnh và cả .

Mặc dù nội dung chính của “Lời” là Phần Thân (văn bản), nhưng “Hình” và “Bảng” có thể được sử dụng để tăng tính hấp dẫn và độ tin cậy. Điều này đặc biệt đúng đối với các tài liệu chính thức, được viết tốt như bài báo, bài bình luận, v. v

Ngoài ra, bằng cách tự động hóa quản lý phần, có thể “Chỉnh sửa hàng loạt tài liệu cùng một lúc”

Chúng tôi hy vọng các bạn sẽ sử dụng Python để nâng cao hiệu quả cho “Công việc Word” của mình .

Cuối cùng, hãy để tôi tóm tắt những điểm chính của bài viết này

  • Có thể chèn ảnh bằng python-docx. Bản thân Word có thể chèn ảnh 2 lớp nhưng thư viện này chỉ hỗ trợ là “Inline Layer”. To support image Lớp vẽ, bạn cần thử một thư viện hoặc phương pháp khác
  • Bảng đối tượng có thể được tạo và bổ sung vào Tài liệu. Kiểu bảng và các thuộc tính khác được cung cấp để cải thiện hình thức của bảng
  • Định dạng trang và quản lý Header/Footer được thực hiện với Mục đối tượng. Nó có thể được lấy và thiết lập với các thuộc tính chuyên dụng
  • python-docx không thể điều khiển định dạng cấu hình và công nghệ thông minh. Do đó, nên thử thư viện hoặc phương pháp khác. (Mong các bản cập nhật trong tương lai)

Bây giờ, trong số tiếp theo, chúng ta sẽ thảo luận về cách áp dụng “Kiểu” cho tài liệu

Có nhiều mục đích khác nhau để tạo văn bản trong Word. Nó có thể dành cho “Viết chính thức và trang trọng”, “Viết theo phong cách tiểu luận” hay “Những câu thông tục thân thiện và thân thiện”…

Như vậy, tùy theo mục đích mà phong cách viết (chữ cái, tiêu đề, tiêu đề) và phong cách viết thông thường đã được xác định trước ở một mức độ nào đó

Bằng cách đăng ký “kiểu câu” này theo kiểu cố định trong Word, nó có thể được sử dụng nhiều lần và hiệu quả

Vì vậy, trong phần tiếp theo, chúng tôi sẽ giải thích cách sử dụng “Phong cách”. Xin hãy đợi nó

Liên kết sẽ ở đây. ↓

【Python×Word】Áp dụng và định kiểu trong python-docx

Minh họa cách áp dụng các kiểu có sẵn trong Word và các kiểu do người dùng xác định. Nó cũng hữu ích như một tài liệu tham khảo cho các kiểu xây dựng sẵn có