ducpy.builders.style_builders ============================= .. py:module:: ducpy.builders.style_builders .. autoapi-nested-parse:: Helper functions for creating element styles with a user-friendly API. Each ELEMENT_CONTENT_PREFERENCE has its own dedicated method. Functions --------- .. autoapisummary:: ducpy.builders.style_builders._create_default_tiling_properties ducpy.builders.style_builders._create_default_hatch_style ducpy.builders.style_builders._create_default_image_filter ducpy.builders.style_builders.create_solid_content ducpy.builders.style_builders.create_fill_content ducpy.builders.style_builders.create_image_content ducpy.builders.style_builders.create_hatch_content ducpy.builders.style_builders.create_background ducpy.builders.style_builders.create_stroke ducpy.builders.style_builders.create_simple_styles ducpy.builders.style_builders.create_fill_style ducpy.builders.style_builders.create_stroke_style ducpy.builders.style_builders.create_fill_and_stroke_style ducpy.builders.style_builders.create_solid_style ducpy.builders.style_builders.create_hatch_style ducpy.builders.style_builders.create_text_style ducpy.builders.style_builders.create_paragraph_formatting ducpy.builders.style_builders.create_stack_format_properties ducpy.builders.style_builders.create_stack_format ducpy.builders.style_builders.create_doc_style ducpy.builders.style_builders.create_text_column ducpy.builders.style_builders.create_column_layout ducpy.builders.style_builders.create_margins ducpy.builders.style_builders.create_table_cell_style ducpy.builders.style_builders.create_table_style Module Contents --------------- .. py:function:: _create_default_tiling_properties() -> ducpy.classes.ElementsClass.TilingProperties Create default tiling properties. .. py:function:: _create_default_hatch_style() -> ducpy.classes.ElementsClass.DucHatchStyle Create default hatch style. .. py:function:: _create_default_image_filter() -> ducpy.classes.ElementsClass.DucImageFilter Create default image filter. .. py:function:: create_solid_content(color: str, opacity: float = 1.0, visible: bool = True) -> ducpy.classes.ElementsClass.ElementContentBase Create solid color content. Args: color: Hex color string (e.g., "#FF0000") opacity: Content opacity (0.0 to 1.0) visible: Whether content is visible Returns: ElementContentBase: Solid color content .. py:function:: create_fill_content(color: str, opacity: float = 1.0, visible: bool = True) -> ducpy.classes.ElementsClass.ElementContentBase Create fill content (solid color or gradient). Args: color: Hex color string or gradient definition opacity: Content opacity (0.0 to 1.0) visible: Whether content is visible Returns: ElementContentBase: Fill content .. py:function:: create_image_content(image_src: str, opacity: float = 1.0, visible: bool = True, fit_mode: Optional[str] = None) -> ducpy.classes.ElementsClass.ElementContentBase Create image content with various fit modes. Args: image_src: Can be a fileId, url, or frame element's content `@el/${elementId}` opacity: Content opacity (0.0 to 1.0) visible: Whether content is visible fit_mode: How image fits (FIT, TILE, STRETCH) - string for now Returns: ElementContentBase: Image content .. py:function:: create_hatch_content(pattern: str, opacity: float = 1.0, visible: bool = True) -> ducpy.classes.ElementsClass.ElementContentBase Create hatch pattern content. Args: pattern: Hatch pattern definition opacity: Content opacity (0.0 to 1.0) visible: Whether content is visible Returns: ElementContentBase: Hatch content .. py:function:: create_background(content: ducpy.classes.ElementsClass.ElementContentBase) -> ducpy.classes.ElementsClass.ElementBackground Create element background from content. Args: content: Content created by create_solid_content, create_image_content, etc. Returns: ElementBackground: Background with the specified content .. py:function:: create_stroke(content: ducpy.classes.ElementsClass.ElementContentBase, width: float, placement: ducpy.Duc.STROKE_PLACEMENT.STROKE_PLACEMENT = STROKE_PLACEMENT.INSIDE, style: Optional[ducpy.classes.ElementsClass.StrokeStyle] = None, sides: Optional[ducpy.classes.ElementsClass.StrokeSides] = None) -> ducpy.classes.ElementsClass.ElementStroke Create element stroke from content. Args: content: Content created by create_solid_content, etc. width: Stroke width placement: Where to place the stroke (INSIDE, CENTER, OUTSIDE) style: Custom stroke style (defaults to solid) sides: Custom stroke sides (defaults to all sides) Returns: ElementStroke: Stroke with the specified content and properties .. py:function:: create_simple_styles(roundness: float = 0.0, opacity: float = 1.0, backgrounds: Optional[List[ducpy.classes.ElementsClass.ElementBackground]] = None, strokes: Optional[List[ducpy.classes.ElementsClass.ElementStroke]] = None, blending: Optional[ducpy.Duc.BLENDING.BLENDING] = None) -> ducpy.classes.ElementsClass.DucElementStylesBase Create element styles from pre-built backgrounds and strokes. Args: roundness: Corner roundness for rectangles opacity: Element opacity (0.0 to 1.0) backgrounds: List of backgrounds created with create_background() strokes: List of strokes created with create_stroke() blending: Blending mode Returns: DucElementStylesBase: Configured styles .. py:function:: create_fill_style(content, roundness: float = 0.0, opacity: float = 1.0) -> ducpy.classes.ElementsClass.DucElementStylesBase Create a fill style with the given content (solid, image, hatch, etc). .. py:function:: create_stroke_style(content, width: float = 1.0, placement: ducpy.Duc.STROKE_PLACEMENT.STROKE_PLACEMENT = STROKE_PLACEMENT.INSIDE, opacity: float = 1.0) -> ducpy.classes.ElementsClass.DucElementStylesBase Create a stroke style with the given content and width. .. py:function:: create_fill_and_stroke_style(fill_content: ducpy.classes.ElementsClass.ElementContentBase, stroke_content: ducpy.classes.ElementsClass.ElementContentBase, stroke_width: float = 1.0, roundness: float = 0.0, opacity: float = 1.0, placement: ducpy.Duc.STROKE_PLACEMENT.STROKE_PLACEMENT = STROKE_PLACEMENT.INSIDE) -> ducpy.classes.ElementsClass.DucElementStylesBase Create a style with both fill and stroke using the provided contents. .. py:function:: create_solid_style(color: str, opacity: float = 1.0) Create solid content for use with create_fill_style or create_stroke_style. .. py:function:: create_hatch_style(pattern: str, opacity: float = 1.0) Create hatch content for use with create_fill_style or create_stroke_style. .. py:function:: create_text_style(base_style: Optional[ducpy.classes.ElementsClass.DucElementStylesBase] = None, font_family: str = 'Arial', font_size: float = 12, is_ltr: bool = True, text_align: Optional[ducpy.Duc.TEXT_ALIGN.TEXT_ALIGN] = None, vertical_align: Optional[ducpy.Duc.VERTICAL_ALIGN.VERTICAL_ALIGN] = None, line_height: float = 1.0, line_spacing_value: float = 1.0, line_spacing_type: Optional[ducpy.Duc.LINE_SPACING_TYPE.LINE_SPACING_TYPE] = None, oblique_angle: float = 0.0, width_factor: float = 1.0, is_upside_down: bool = False, is_backwards: bool = False, paper_text_height: Optional[float] = None) -> ducpy.classes.ElementsClass.DucTextStyle Create a text style for table cells or other text elements. Args: base_style: Base element style font_family: Font family name font_size: Font size is_ltr: Left-to-right text direction text_align: Horizontal text alignment vertical_align: Vertical text alignment line_height: Line height multiplier line_spacing_value: Line spacing value line_spacing_type: Line spacing type oblique_angle: Text oblique angle width_factor: Text width factor is_upside_down: Whether text is upside down is_backwards: Whether text is backwards paper_text_height: Paper text height .. py:function:: create_paragraph_formatting(first_line_indent: float = 0.0, hanging_indent: float = 0.0, left_indent: float = 0.0, right_indent: float = 0.0, space_before: float = 0.0, space_after: float = 0.0, tab_stops: Optional[List[float]] = None) -> ducpy.classes.ElementsClass.ParagraphFormatting Create paragraph formatting settings. .. py:function:: create_stack_format_properties(upper_scale: float = 0.7, lower_scale: float = 0.7, alignment: Optional[ducpy.Duc.STACKED_TEXT_ALIGN.STACKED_TEXT_ALIGN] = None) -> ducpy.classes.ElementsClass.StackFormatProperties Create stack format properties for stacked text. .. py:function:: create_stack_format(auto_stack: bool = True, stack_chars: Optional[List[str]] = None, properties: Optional[ducpy.classes.ElementsClass.StackFormatProperties] = None) -> ducpy.classes.ElementsClass.StackFormat Create stack format for fractions and special text. .. py:function:: create_doc_style(text_style: Optional[ducpy.classes.ElementsClass.DucTextStyle] = None, paragraph: Optional[ducpy.classes.ElementsClass.ParagraphFormatting] = None, stack_format: Optional[ducpy.classes.ElementsClass.StackFormat] = None) -> ducpy.classes.ElementsClass.DucDocStyle Create document style. .. py:function:: create_text_column(width: float, gutter: float = 0.0) -> ducpy.classes.ElementsClass.TextColumn Create a text column definition. .. py:function:: create_column_layout(definitions: Optional[List[ducpy.classes.ElementsClass.TextColumn]] = None, auto_height: bool = True, column_type: Optional[ducpy.Duc.COLUMN_TYPE.COLUMN_TYPE] = None) -> ducpy.classes.ElementsClass.ColumnLayout Create column layout for multi-column text. .. py:function:: create_margins(top: float = 0.0, right: float = 0.0, bottom: float = 0.0, left: float = 0.0) -> ducpy.classes.ElementsClass.Margins Create margin settings. .. py:function:: create_table_cell_style(base_style: Optional[ducpy.classes.ElementsClass.DucElementStylesBase] = None, text_style: Optional[ducpy.classes.ElementsClass.DucTextStyle] = None, margins: Optional[ducpy.classes.ElementsClass.Margins] = None, alignment: Optional[ducpy.classes.ElementsClass.TABLE_CELL_ALIGNMENT] = None) -> ducpy.classes.ElementsClass.DucTableCellStyle Create table cell style. .. py:function:: create_table_style(base_style: Optional[ducpy.classes.ElementsClass.DucElementStylesBase] = None, header_row_style: Optional[ducpy.classes.ElementsClass.DucTableCellStyle] = None, data_row_style: Optional[ducpy.classes.ElementsClass.DucTableCellStyle] = None, data_column_style: Optional[ducpy.classes.ElementsClass.DucTableCellStyle] = None, flow_direction: Optional[ducpy.classes.ElementsClass.TABLE_FLOW_DIRECTION] = None) -> ducpy.classes.ElementsClass.DucTableStyle Create table style.