Конвертирует 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 htmltodocx.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.7.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.7.tar.gz.
File metadata
- Download URL: html2docxconverter-0.1.7.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 |
38c0f5f98ba709490ef68b2c15ae1e38b9b5d6a862824ed86244608aacea4da3
|
|
| MD5 |
c661171b739d56efab775b011d739bcf
|
|
| BLAKE2b-256 |
e4c7e6a77ecc05e19947d5b7e9c3af27f177e06f4eb694c89932058bd4f5e36b
|
File details
Details for the file html2docxconverter-0.1.7-py3-none-any.whl.
File metadata
- Download URL: html2docxconverter-0.1.7-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 |
804838f36e38de46073b4e4525d05ed6f3bb16a6657704590aac8f9d311fa29f
|
|
| MD5 |
1c7a08a422b9f6c6322dfe58d0d6b490
|
|
| BLAKE2b-256 |
08440eafde2db2c6d69914723e37f43f6af9abb9108ff170333a2aa81cd44fcd
|