From 8e720d40370f5079ffee36b454febf711064942e Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Mon, 10 Nov 2025 15:15:03 +0100 Subject: [PATCH] fix table in cell wrapping --- docs/images/example_04_table_rendering.png | Bin 26137 -> 43146 bytes .../images/example_11_table_text_wrapping.png | Bin 0 -> 91317 bytes docs/images/example_11b_simple_wrapping.png | Bin 0 -> 23154 bytes examples/11_table_text_wrapping_demo.py | 312 ++++++++++++++++++ examples/11b_simple_table_wrapping.py | 121 +++++++ examples/README.md | 27 ++ pyWebLayout/concrete/table.py | 54 ++- 7 files changed, 499 insertions(+), 15 deletions(-) create mode 100644 docs/images/example_11_table_text_wrapping.png create mode 100644 docs/images/example_11b_simple_wrapping.png create mode 100644 examples/11_table_text_wrapping_demo.py create mode 100644 examples/11b_simple_table_wrapping.py diff --git a/docs/images/example_04_table_rendering.png b/docs/images/example_04_table_rendering.png index b0f5879b68568bee6944522c1f33be8f264e291a..d3637716d8ef2f793bfc81cd153d307eb4578b45 100644 GIT binary patch literal 43146 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ℜ^{YZ7n+V(2su3F7K3j^{6Y3aP{J!hdk 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 Vv5G651y&BW#lgkCaO2)%e*hF?)1LqU literal 0 HcmV?d00001 diff --git a/examples/11_table_text_wrapping_demo.py b/examples/11_table_text_wrapping_demo.py new file mode 100644 index 0000000..0998f20 --- /dev/null +++ b/examples/11_table_text_wrapping_demo.py @@ -0,0 +1,312 @@ +#!/usr/bin/env python3 +""" +Table Text Wrapping Example + +This example demonstrates the line wrapping functionality in table cells: +- Tables with long text that wraps across multiple lines +- Automatic word wrapping within cell boundaries +- Hyphenation support for long words +- Multiple paragraphs per cell +- Comparison of narrow vs. wide columns + +Shows how the Line-based text layout system handles text overflow in tables. +""" + +from pyWebLayout.io.readers.html_extraction import parse_html_string +from pyWebLayout.layout.document_layouter import DocumentLayouter +from pyWebLayout.style.page_style import PageStyle +from pyWebLayout.concrete.table import TableStyle +from pyWebLayout.concrete.page import Page +import sys +from pathlib import Path +from PIL import Image + +# Add pyWebLayout to path +sys.path.insert(0, str(Path(__file__).parent.parent)) + + +def create_narrow_columns_example(): + """Create a table with narrow columns to show aggressive wrapping.""" + print(" - Narrow columns with text wrapping") + + html = """ + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureDescriptionBenefits
Automatic Line WrappingText automatically wraps to fit within the available cell width, creating multiple lines as needed.Improves readability and prevents horizontal overflow in tables.
Hyphenation SupportLong words are intelligently hyphenated using pyphen library or brute-force splitting when necessary.Handles extraordinarily long words that wouldn't fit on a single line.
Multi-paragraph CellsEach cell can contain multiple paragraphs or headings, all properly wrapped.Allows rich content within table cells.
+ """ + + return html, "Text Wrapping in Narrow Columns" + + +def create_mixed_content_example(): + """Create a table with both short and long content.""" + print(" - Mixed content lengths") + + html = """ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Product Comparison
ProductShort DescriptionDetailed Features
Widget ProPremiumAdvanced functionality with enterprise-grade reliability, comprehensive warranty coverage, and dedicated customer support available around the clock.
Widget LiteBasicEssential features for everyday use with straightforward operation and minimal learning curve.
Widget MaxUltimateEverything from Widget Pro plus additional customization options, API integration capabilities, and advanced analytics dashboard.
+ """ + + return html, "Mixed Short and Long Content" + + +def create_technical_documentation_example(): + """Create a table like technical documentation.""" + print(" - Technical documentation style") + + html = """ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
API MethodParametersDescriptionReturn Value
render_table()table, origin, width, draw, styleRenders a table with automatic text wrapping in cells. Uses the Line class for intelligent word placement and hyphenation.Rendered table with calculated height and width properties.
add_word()word, pretextAttempts to add a word to the current line. If it doesn't fit, tries hyphenation strategies including pyphen and brute-force splitting.Tuple of (success, overflow_text) indicating whether word was added and any remaining text.
calculate_spacing()text_objects, width, min_spacing, max_spacingDetermines optimal spacing between words to achieve proper justification within the specified constraints.Calculated spacing value and position offset for alignment.
+ """ + + return html, "Technical Documentation Table" + + +def create_news_article_example(): + """Create a table with article-style content.""" + print(" - News article layout") + + html = """ + + + + + + + + + + + + + + + + + + + + + + + + + +
DateHeadlineSummary
2024-01-15New Text Wrapping FeaturePyWebLayout now supports automatic line wrapping in table cells, bringing sophisticated text layout capabilities to table rendering. The implementation leverages the existing Line class infrastructure.
2024-01-10Hyphenation ImprovementsEnhanced hyphenation algorithms now include both dictionary-based pyphen hyphenation and intelligent brute-force splitting for edge cases.
2024-01-05Performance OptimizationTable rendering performance improved through better caching and reduced font object creation overhead.
+ """ + + return html, "News Article Layout" + + +def render_table_example(html, title, style_variant=0): + """Render a single table example.""" + from pyWebLayout.style import Font + from pyWebLayout.abstract.block import Table + + # Parse HTML + base_font = Font(font_size=12) + blocks = parse_html_string(html, base_font=base_font) + + # Find the table block + table = None + for block in blocks: + if isinstance(block, Table): + table = block + break + + if not table: + print(f" Warning: No table found in {title}") + return None + + # Create page style + page_style = PageStyle( + padding=(20, 20, 20, 20), + background_color=(255, 255, 255) + ) + + # Create page + page_size = (900, 600) + page = Page(size=page_size, style=page_style) + + # Create table style variants + table_styles = [ + # Default style + TableStyle( + border_width=1, + border_color=(0, 0, 0), + cell_padding=(8, 8, 8, 8), + header_bg_color=(240, 240, 240), + cell_bg_color=(255, 255, 255) + ), + # Blue header style + TableStyle( + border_width=2, + border_color=(70, 130, 180), + cell_padding=(10, 10, 10, 10), + header_bg_color=(176, 196, 222), + cell_bg_color=(245, 250, 255) + ), + # Minimal style + TableStyle( + border_width=1, + border_color=(200, 200, 200), + cell_padding=(6, 6, 6, 6), + header_bg_color=(250, 250, 250), + cell_bg_color=(255, 255, 255) + ), + ] + + table_style = table_styles[style_variant % len(table_styles)] + + # Create layouter and render table + layouter = DocumentLayouter(page) + layouter.layout_table(table, style=table_style) + + # Get the rendered canvas + _ = page.draw # Ensure canvas exists + img = page._canvas + + return img + + +def combine_examples(examples): + """Combine multiple example images into one.""" + images = [] + titles = [] + + for html, title in examples: + img = render_table_example(html, title) + if img: + images.append(img) + titles.append(title) + + if not images: + return None + + # Calculate combined image size + max_width = max(img.width for img in images) + total_height = sum(img.height for img in images) + 40 * len(images) # Extra space between images + + # Create combined image + combined = Image.new('RGB', (max_width, total_height), color=(255, 255, 255)) + + # Paste images + y_offset = 20 + for img in images: + combined.paste(img, (0, y_offset)) + y_offset += img.height + 40 + + return combined + + +def main(): + """Run the table text wrapping example.""" + print("\nTable Text Wrapping Example") + print("=" * 50) + + # Create examples + print("\n Creating table examples...") + examples = [ + create_narrow_columns_example(), + create_mixed_content_example(), + create_technical_documentation_example(), + create_news_article_example(), + ] + + print("\n Rendering table examples...") + combined_image = combine_examples(examples) + + if combined_image: + # Save the output + output_dir = Path(__file__).parent.parent / 'docs' / 'images' + output_dir.mkdir(parents=True, exist_ok=True) + output_path = output_dir / 'example_11_table_text_wrapping.png' + + combined_image.save(str(output_path)) + + print("\n✓ Example completed!") + print(f" Output saved to: {output_path}") + print(f" Image size: {combined_image.width}x{combined_image.height} pixels") + print(f" Created {len(examples)} table examples with text wrapping") + else: + print("\n✗ Failed to generate examples") + + +if __name__ == '__main__': + main() diff --git a/examples/11b_simple_table_wrapping.py b/examples/11b_simple_table_wrapping.py new file mode 100644 index 0000000..a3af467 --- /dev/null +++ b/examples/11b_simple_table_wrapping.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +""" +Simple Table Text Wrapping Example + +A minimal example showing text wrapping in table cells. +Perfect for quick testing and demonstration. +""" + +import sys +from pathlib import Path + +# Add pyWebLayout to path +sys.path.insert(0, str(Path(__file__).parent.parent)) + +from pyWebLayout.io.readers.html_extraction import parse_html_string +from pyWebLayout.layout.document_layouter import DocumentLayouter +from pyWebLayout.style.page_style import PageStyle +from pyWebLayout.style import Font +from pyWebLayout.concrete.table import TableStyle +from pyWebLayout.concrete.page import Page +from pyWebLayout.abstract.block import Table + + +def main(): + """Create a simple table with text wrapping.""" + print("\nSimple Table Text Wrapping Example") + print("=" * 50) + + # HTML with a table containing long text + html = """ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Text Wrapping Demonstration
Column 1Column 2Column 3
This is a cell with quite a lot of text that will need to wrap across multiple lines.Short textAnother cell with enough content to demonstrate the automatic line wrapping functionality.
Cell AThis middle cell contains a paragraph with several words that should wrap nicely within the available space.Cell C
Words like supercalifragilisticexpialidocious might need hyphenation.Normal textThe wrapping algorithm handles both regular word wrapping and hyphenation seamlessly.
+ """ + + print("\n Parsing HTML and creating table...") + + # Parse HTML + base_font = Font(font_size=12) + blocks = parse_html_string(html, base_font=base_font) + + # Find table + table = None + for block in blocks: + if isinstance(block, Table): + table = block + break + + if not table: + print(" ✗ No table found!") + return + + print(" ✓ Table parsed successfully") + + # Create page + page_style = PageStyle( + padding=(30, 30, 30, 30), + background_color=(255, 255, 255) + ) + page = Page(size=(800, 600), style=page_style) + + # Create table style + table_style = TableStyle( + border_width=2, + border_color=(70, 130, 180), + cell_padding=(10, 10, 10, 10), + header_bg_color=(176, 196, 222), + cell_bg_color=(245, 250, 255) + ) + + print(" Rendering table with text wrapping...") + + # Layout and render + layouter = DocumentLayouter(page) + layouter.layout_table(table, style=table_style) + + # Get rendered image + _ = page.draw + img = page._canvas + + # Save output + output_path = Path(__file__).parent.parent / 'docs' / 'images' / 'example_11b_simple_wrapping.png' + output_path.parent.mkdir(parents=True, exist_ok=True) + img.save(str(output_path)) + + print(f"\n✓ Example completed!") + print(f" Output saved to: {output_path}") + print(f" Image size: {img.width}x{img.height} pixels") + print(f"\n The table demonstrates:") + print(f" • Automatic line wrapping in cells") + print(f" • Proper word spacing and alignment") + print(f" • Hyphenation for very long words") + print(f" • Multi-line text within cell boundaries") + + +if __name__ == '__main__': + main() diff --git a/examples/README.md b/examples/README.md index 4f34504..08bfc5c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -174,6 +174,31 @@ Demonstrates all 14 FormFieldType variations: ![Comprehensive Forms Example](../docs/images/example_10_forms.png) +### 11. Table Text Wrapping (NEW) ✅ +**`11_table_text_wrapping_demo.py`** - Automatic line wrapping in table cells + +```bash +python 11_table_text_wrapping_demo.py +``` + +**Simple Version:** `11b_simple_table_wrapping.py` - Quick demonstration + +Demonstrates: +- **Automatic line wrapping** - Text wraps across multiple lines within cells +- **Word hyphenation** - Long words are intelligently hyphenated +- **Narrow columns** - Aggressive wrapping for tight spaces +- **Mixed content** - Both short and long text in the same table +- **Technical documentation** - API reference style tables +- **News layouts** - Article-style table content + +**Implementation:** Uses the Line class from `pyWebLayout.concrete.text` with: +- Word-by-word fitting with intelligent spacing +- Pyphen-based dictionary hyphenation +- Brute-force splitting for edge cases +- Proper baseline alignment and metrics + +![Table Text Wrapping Example](../docs/images/example_11_table_text_wrapping.png) + --- ## Advanced Examples @@ -207,6 +232,8 @@ python 06_functional_elements_demo.py python 08_pagination_demo.py # Multi-page documents python 09_link_navigation_demo.py # All link types python 10_forms_demo.py # All form field types +python 11_table_text_wrapping_demo.py # Table cell text wrapping +python 11b_simple_table_wrapping.py # Simple wrapping demo ``` Output images are saved to the `docs/images/` directory. diff --git a/pyWebLayout/concrete/table.py b/pyWebLayout/concrete/table.py index bb375f2..ff7d303 100644 --- a/pyWebLayout/concrete/table.py +++ b/pyWebLayout/concrete/table.py @@ -145,17 +145,36 @@ class TableCellRenderer(Box): block, x, current_y, width, height - (current_y - y)) elif isinstance(block, (Paragraph, Heading)): # Get words from the block + from pyWebLayout.abstract.inline import Word as AbstractWord + word_items = block.words() if callable(block.words) else block.words words = list(word_items) if not words: continue + # Create new Word objects with the table cell's font + # The words from the paragraph may have AbstractStyle, but we need Font objects + wrapped_words = [] + for word_item in words: + # Handle word tuples (index, word_obj) + if isinstance(word_item, tuple) and len(word_item) >= 2: + word_obj = word_item[1] + else: + word_obj = word_item + + # Extract text from the word + word_text = word_obj.text if hasattr(word_obj, 'text') else str(word_obj) + + # Create a new Word with the cell's Font + new_word = AbstractWord(word_text, font) + wrapped_words.append(new_word) + # Layout words using Line objects with wrapping word_index = 0 pretext = None - while word_index < len(words): + while word_index < len(wrapped_words): # Check if we have space for another line if current_y + ascent + descent > y + available_height: break # No more space in cell @@ -172,29 +191,29 @@ class TableCellRenderer(Box): # Add words to this line until it's full line_has_content = False - while word_index < len(words): - word = words[word_index] - - # Handle word tuples (index, word_obj) - if isinstance(word, tuple) and len(word) >= 2: - word_obj = word[1] - else: - word_obj = word + while word_index < len(wrapped_words): + word = wrapped_words[word_index] # Try to add word to line - success, overflow = line.add_word(word_obj, pretext) + success, overflow = line.add_word(word, pretext) pretext = None # Clear pretext after use if success: line_has_content = True if overflow: # Word was hyphenated, carry over to next line + # DON'T increment word_index - we need to add the overflow + # to the next line with the same word pretext = overflow - word_index += 1 + break # Move to next line + else: + # Word fit completely, move to next word + word_index += 1 else: # Word doesn't fit on this line if not line_has_content: - # Even first word doesn't fit, force it anyway to avoid infinite loop + # Even first word doesn't fit, force it anyway and advance + # This prevents infinite loops with words that truly can't fit word_index += 1 break @@ -454,11 +473,16 @@ class TableRenderer(Box): column_widths = [column_width] * num_columns # Calculate row heights - header_height = 35 if any(1 for section, + # Minimum height needs to account for: + # - Font size (12px) + line height (4px) = 16px per line + # - Cell padding (varies, but typically 10-20px top+bottom) + # - At least 2 lines of text for wrapping + # So minimum should be ~60px to accommodate padding + 2 lines + header_height = 60 if any(1 for section, _ in all_rows if section == "header") else 0 # Check if any body rows contain images - if so, use larger height - body_height = 30 + body_height = 60 # Increased from 30 to allow for text wrapping for section, row in all_rows: if section == "body": for cell in row.cells(): @@ -468,7 +492,7 @@ class TableRenderer(Box): body_height = max(body_height, 120) break - footer_height = 30 if any(1 for section, + footer_height = 60 if any(1 for section, _ in all_rows if section == "footer") else 0 row_heights = {