def to_html_str(self) -> str:
        """
        Generates an HTML string representation of the table.

        Currently uses image coordinates - should be converted to PDF coordinates.
        """
        html_str = '<table border="1">\n'  # Start of table

        # Generate header rows
        if self.headers:
            html_str += "<thead>\n"
            for header in self.headers:
                html_str += "<tr>\n"
                for cell in header.cells:
                    min_width = round(cell.bbox[2] - cell.bbox[0])
                    html_str += f'<th style="min-width:{min_width}px;">{cell.content or ""}</th>\n'
                html_str += "</tr>\n"
            html_str += "</thead>\n"

        # Generate data rows
        html_str += "<tbody>\n"
        for row in self.rows:
            html_str += "<tr>\n"
            for cell in row.cells:  # type: ignore
                min_width = round(cell.bbox[2] - cell.bbox[0])
                html_str += (
                    f'<td style="min-width:{min_width}px;">{cell.content or ""}</td>\n'
                )
            html_str += "</tr>\n"
        html_str += "</tbody>\n"

        html_str += "</table>"  # End of table
        return html_str

        Generates an HTML string representation of the table.

        Currently uses image coordinates - should be converted to PDF coordinates.
        
src/openparse/tables/table_transformers/schemas.py