Hướng dẫn font color python - màu phông chữ python

Màu sắc, như một chủ đề, vượt ra ngoài đối tượng

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
3; Phông chữ màu chỉ là nơi đầu tiên mà nó xuất hiện. Theo đó, nó có suy nghĩ sâu sắc hơn một chút so với bình thường vì chúng tôi sẽ muốn tái sử dụng cùng một đối tượng và giao thức để chỉ định màu sắc trong các bối cảnh khác; Nó có ý nghĩa để tạo ra một giải pháp chung sẽ mang lại dự kiến ​​tái sử dụng.

Có ba nguồn lịch sử để rút ra từ API này.

  1. W: RPR/W: Phần tử màu. Điều này được sử dụng theo mặc định khi áp dụng màu trực tiếp vào văn bản hoặc khi đặt màu văn bản của một kiểu. Điều này tương ứng với thuộc tính Font.Color (không may, không may). Yếu tố này hỗ trợ màu RGB, màu chủ đề và màu hoặc sắc thái của một màu chủ đề.
  2. Các yếu tố W: RPR/W14: TextFill. Điều này được sử dụng bởi Word cho văn bản ưa thích như gradient và hiệu ứng bóng. Điều này tương ứng với thuộc tính Font.fill.
  3. UI màu phông chữ PowerPoint. Điều này có vẻ như là một sự thỏa hiệp hợp lý giữa hai người trước đó, cho phép truy cập trực tiếp vào các tùy chọn màu phổ biến trong khi giữ cửa mở cho các hoạt động font.fill được thêm vào sau nếu được yêu cầu.

Giao thức ứng cử viên

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
4 có thuộc tính phông chữ:

>>> from docx import Document
>>> from docx.text.run import Font, Run
>>> run = Document().add_paragraph().add_run()
>>> isinstance(run, Run)
True
>>> font = run.font
>>> isinstance(font, Font)
True

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
5 có thuộc tính màu chỉ đọc, trả về đối tượng
>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
6:

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
6 có thuộc tính
>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
8 chỉ đọc và đọc/ghi
>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
9,
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
0 và
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
1 thuộc tính.

>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
2 Trả về một trong MSO_COLOR_TYPE.RGB, MSO_COLOR_TYPE.THEME, MSO_COLOR_TYPE.AUTO hoặc
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
3, phần sau biểu thị phông chữ không có màu được áp dụng trực tiếp:

>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
4 Trả về một đối tượng
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
5 khi loại là MSO_COLOR_TYPE.RGB. Nó cũng có thể báo cáo giá trị RGBColor khi loại là MSO_Color_Type.theme, vì màu RGB cũng có thể có trong trường hợp đó. Theo thông số kỹ thuật, giá trị màu RGB bị bỏ qua khi một màu chủ đề được chỉ định, nhưng Word ghi giá trị RGB hiện tại của màu chủ đề cùng với tên màu chủ đề (ví dụ: Accent1,) khi gán màu chủ đề; Có lẽ là một giá trị thuận tiện cho một trình duyệt tệp để sử dụng. Giá trị của .type phải được tư vấn để xác định xem giá trị RGB có hoạt động hay là một người giỏi nhất hay không:

>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)

Gán giá trị

>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
5 cho
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
4 khiến
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
2 trở thành MSO_COLOR_TYPE.RGB:

>>> font.color.type
None
>>> font.color.rgb = RGBColor(0x3f, 0x2c, 0x36)
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)

>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
9 Trả về một thành viên của MSO_Theme_Color_index khi loại là MSO_COLOR_TYPE.THEME:MSO_THEME_COLOR_INDEX when type is MSO_COLOR_TYPE.THEME:

>>> font.color.type
THEME (2)
>>> font.color.theme_color
ACCENT_1 (5)

Việc gán một thành viên của MSO_Theme_color_index cho

>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
9 khiến
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
2 trở thành MSO_Color_Type.theme:MSO_THEME_COLOR_INDEX to
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
9 causes
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
2 to become MSO_COLOR_TYPE.THEME:

>>> font.color.type
RGB (1)
>>> font.color.theme_color = MSO_THEME_COLOR.ACCENT_2
>>> font.color.type
THEME (2)
>>> font.color.theme_color
ACCENT_2 (6)

Thuộc tính

>>> font.color.type
None
>>> font.color.rgb = RGBColor(0x3f, 0x2c, 0x36)
>>> font.color.type
RGB (1)
>>> font.color.rgb
RGBColor(0x3f, 0x2c, 0x36)
2 có thể được sử dụng để chọn một màu hoặc màu của màu chủ đề. Gán giá trị 0,1 tạo ra màu sáng hơn 10% (một tông màu); Gán -0.1 tạo ra màu tối hơn 10% (một bóng râm):

>>> font.color.type
None
>>> font.color.brightness
0.0
>>> font.color.brightness = 0.4
ValueError: not a theme color

>>> font.color.theme_color = MSO_THEME_COLOR.TEXT_1
>>> font.color.brightness = 0.4
>>> font.color.brightness
0.4

Mẫu vật XML¶

Đoạn đường cơ sở không có màu phông chữ:


  
    Text with no color.
  

Đoạn văn với màu RGB được áp dụng trực tiếp:


  
    
       w:val="0000FF"/>
    
  
  
    
       w:val="0000FF"/>
    
    Directly-applied color Blue.
  

Chạy với màu chủ đề được áp dụng trực tiếp:


  
     w:val="4F81BD" w:themeColor="accent1"/>
  
  Theme color Accent 1.

Chạy với 40% Tint của văn bản 2 Màu chủ đề:

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
0

Chạy với 25% màu của Accent 2 Màu sắc chủ đề:

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
1

Đoạn trích lược đồ

>>> from docx.dml.color import ColorFormat
>>> color = font.color
>>> isinstance(font.color, ColorFormat)
True
>>> font.color = 'anything'
AttributeError: can't set attribute
2