Конвертирует HTML в DOCX с сохранением стилей: списков, таблиц, шрифтов, цветов и т.д.
Project description
Библиотека конвертации HTML в DOCX
Python-библиотека для преобразования HTML-контента в документы Word (.docx) с поддержкой таблиц, списков, изображений и CSS-стилей.
Установка
pip install html2docxconverter
uv add html2docxconverter
Поддерживаемые HTML-теги
Основные теги
<p>- абзацы текста<figure>- контейнеры для изображений<ul>- неупорядоченные списки<ol>- упорядоченные списки<li>- элементы списков<table>- таблицы<tr>- строки таблицы<td>- ячейки таблицы<th>- заголовочные ячейки таблицы<colgroup>- группировка столбцов таблицы<col>- определение столбца таблицы<tbody>- тело таблицы
Теги форматирования текста
<strong>,<b>- жирный текст<em>,<i>- курсив<u>- подчеркнутый текст<s>,<strike>,<del>- зачеркнутый текст<sup>- верхний индекс<sub>- нижний индекс<span>- контейнер для стилизации текста
Поддерживаемые CSS-стили
Стили текста
color- цвет текста (имена цветов, hex, rgb)background-color- выделение цветом (имена цветов, hex, rgb)font-size- размер шрифта (px, pt, em, %)text-align- выравнивание текста (left, right, center, justify)vertical-align- вертикальное выравнивание (top, middle, bottom)
Стили таблиц и ячеек
width- ширина таблицы/ячейки (px, %)height- высота строки/ячейки (px)background-color- цвет фона таблицы/ячейкиborder- граница (ширина стиль цвет)border-width- ширина границыborder-style- стиль границы (solid, single)border-color- цвет границыfloat- позиционирование таблицы (left, right)
За основу при создании HTML контента использовался
Пример использования
from docx import Document
from htmltodocx import HTMLtoDocx
# Создание нового документа
doc = Document()
# HTML-контент для конвертации
html_content = """
<p>Это <strong>жирный</strong> и <em>курсивный</em> текст.</p>
<ul>
<li>Первый элемент</li>
<li>Второй элемент</li>
</ul>
"""
# Конвертация HTML в DOCX
converter = HTMLtoDocx(doc)
converted_doc = converter.parse_html(html_content)
# Сохранение документа
converted_doc.save("output.docx")
Настройки форматирования
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from schemas import ConfigSchema, DefaultTableStyleSchema, DefaultConfigSchema
from docx import Document
from htmltodocx import HTMLtoDocx
align_map = {
"left": WD_PARAGRAPH_ALIGNMENT.LEFT,
"center": WD_PARAGRAPH_ALIGNMENT.CENTER,
"right": WD_PARAGRAPH_ALIGNMENT.RIGHT,
"justify": WD_PARAGRAPH_ALIGNMENT.JUSTIFY,
}
align_image_class_map = {
"image-style-block-align-left": WD_PARAGRAPH_ALIGNMENT.LEFT,
"image-style-block-align-right": WD_PARAGRAPH_ALIGNMENT.RIGHT,
"image-style-block-align-center": WD_PARAGRAPH_ALIGNMENT.CENTER,
}
vertical_align_map = {"top": "top", "middle": "center", "bottom": "bottom"}
border_side = ["top", "left", "bottom", "right"]
border_style = {
"none": "nil",
"solid": "single",
"dotted": "dotted",
"dashed": "dash",
"double": "double",
"groove": "threeDEmboss",
"ridge": "threeDEngrave",
"inset": "inset",
"outset": "outset",
}
default_settings = DefaultConfigSchema(
align_paragraph=WD_PARAGRAPH_ALIGNMENT.JUSTIFY,
align_image=WD_PARAGRAPH_ALIGNMENT.CENTER,
vertical_align='center',
table_style=DefaultTableStyleSchema(
width="1pt", style="single", color="000000"
)
)
base_config = ConfigSchema(
align_map=align_map,
align_image_class_map=align_image_class_map,
vertical_align_map=vertical_align_map,
border_side=border_side,
border_style=border_style,
default_settings=default_settings
)
# HTML-контент для конвертации
html_content = """
<p>Это <strong>жирный</strong> и <em>курсивный</em> текст.</p>
<ul>
<li>Первый элемент</li>
<li>Второй элемент</li>
</ul>
"""
# Конвертация HTML в DOCX
doc = Document()
converter = HTMLtoDocx(doc, config=base_config)
converted_doc = converter.parse_html(html_content)
# Сохранение документа
converted_doc.save("output.docx")
Лицензия
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
html2docxconverter-0.1.6.tar.gz
(12.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file html2docxconverter-0.1.6.tar.gz.
File metadata
- Download URL: html2docxconverter-0.1.6.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
670c6741934875e9ec681266593ac1a41c6d0f8187680fe80f57690179c16c89
|
|
| MD5 |
61657cca97d5bd3d732ea83b006694aa
|
|
| BLAKE2b-256 |
00fc064663ca136a4b4329459641d587f06495b4aaf38337d67ca93130a7dd30
|
File details
Details for the file html2docxconverter-0.1.6-py3-none-any.whl.
File metadata
- Download URL: html2docxconverter-0.1.6-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
725f790ecd675c51f6c174eb9fa745ee61dcfb227dc7b980e114be483200e720
|
|
| MD5 |
62e031124d178d303e870a59a5d6ba2e
|
|
| BLAKE2b-256 |
ca38d8c49b729e1ad8fa1b7cf39e6f246482604228b03574422acbf29a08d664
|