From 683e32bee8bf5ab279fa34bce12b619190484def Mon Sep 17 00:00:00 2001 From: Vladislav Ostapov Date: Tue, 27 May 2025 10:15:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BC=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 ++++ README.md | 13 +++++++++ requirements.txt | 2 ++ source_code_generator.py | 44 +++++++++++++++++++++++++++++ template/source-code-template.docx | Bin 0 -> 30166 bytes 5 files changed, 64 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 requirements.txt create mode 100644 source_code_generator.py create mode 100644 template/source-code-template.docx diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..31ac57c --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea +gost-espd-generator.iml +venv +result-* + diff --git a/README.md b/README.md new file mode 100644 index 0000000..8710758 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# ГОСТ-ЕСПД генератор документов + +## Генератор документа с исходным кодом + +Запускать в той же директории, что и находится проект. + +Использование: + +```shell +python3 source_code_generator.py /path/to/source/code /path/to/out.docx DOC.NUMBER +``` + +После генерации нужно будет обновить ссылки в содержании и исправить текст в первых листах. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4ad9640 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +docxtpl + diff --git a/source_code_generator.py b/source_code_generator.py new file mode 100644 index 0000000..05f8d6e --- /dev/null +++ b/source_code_generator.py @@ -0,0 +1,44 @@ +from docxtpl import DocxTemplate +from pathlib import Path +import sys + +# Загрузка шаблона +doc = DocxTemplate("template/source-code-template.docx") + + +def get_sources(source_root): + filenames = [str(path.absolute())[len(source_root):] for path in Path(source_root).rglob('*.*')] + filenames.sort() + return filenames + + +def _get_file_context(source_root, filename): + with open(source_root + filename, 'r', encoding="utf8") as f: + return { + 'filename': filename.replace('\\', '/'), # для шиндовс, чтобы правильно генерить пути + 'content': f.read() + } + + +def render_source_code(source_root, out_filename, doc_number="РОФ.ГУТВ.00000-12"): + # Данные для заполнения шаблона + context = { + 'doc_number': doc_number, + 'files': [ + _get_file_context(source_root, src) + for src in get_sources(source_root) + ] + } + + # Заполнение шаблона данными + doc.render(context) + + # Сохранение документа + doc.save(out_filename) + + +if __name__ == '__main__': + if len(sys.argv) != 4: + print(f"Usage: {sys.argv[0]} /path/to/source/code /path/to/out.docx DOC.NUMBER") + else: + render_source_code(sys.argv[1], sys.argv[2], doc_number=sys.argv[3]) diff --git a/template/source-code-template.docx b/template/source-code-template.docx new file mode 100644 index 0000000000000000000000000000000000000000..6ea52a5a3b0a6e0da8c2f1078e286137327a8a2a GIT binary patch literal 30166 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

E->NJ=&dZ%cwzU1J*B`fCv> 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 literal 0 HcmV?d00001