Python = 3.8.3 Python -Docx = 0.8.10
В настоящее время я пытаюсь сделать подарок / сюрприз для моей жены, написав свой первый проект, который облегчил бы ее рабочую нагрузку за счет автоматизации ее письменных оценок (в настоящее время изучает python с 6 месяцев).
Короче говоря, она пишет тесты на документах Word docx, основываясь на оценках разных способностей. Моя идея состоит в том, чтобы сделать шаблон ввода отсортированным по Aptitude (A, B, C, D ...), и каждый шаблон будет содержать блок текста в соответствии с оценкой (низкий балл, средний, высокий балл).
Я провел небольшое исследование и обнаружил модуль python -Docx, который я мог бы использовать для автоматизации копирования шаблона моего входного документа в окончательные выходные документы.
Выполняя свой проект, я Сейчас у меня две большие проблемы: во-первых, я не могу сохранить исходный шрифт, который она использует (Helvetica для заголовков и Garamond для текста), вторая проблема в том, что в ее документах есть таблицы, которые я не могу скопировать либо.
До сих пор мне удалось скопировать правильный блок текста в соответствии с отметкой, а также сохранить полужирный шрифт, itali c и подчеркивание, но не шрифт и таблицы.
I Я читал онлайн-руководство по python -docx, но я действительно не понимаю, где я могу исправить эти 2.
вот образец моего кода:
import os
import sys
from docx import Document
from docxtpl import DocxTemplate
# Imports
inputM01acgti = Document(
'/home/rvera/ubuntuShare/python_Projects/docx_tpl/M-01-ACG-TI-02.docx')
# Output document
output_doc = Document()
# Function to get proper format of original templates
def get_para_data(output_doc_name, paragraph):
output_para = output_doc_name.add_paragraph()
for run in paragraph.runs:
output_run = output_para.add_run(run.text)
# Run's bold data
output_run.bold = run.bold
# Run's italic data
output_run.italic = run.italic
# Run's underline data
output_run.underline = run.underline
# Run's color data
output_run.font.color.rgb = run.font.color.rgb
# Run's font data
output_run.style.name = run.style.name
# Paragraph's alignment data
output_para.paragraph_format.alignment = paragraph.paragraph_format.alignment
# Function for Male Assement
def maleAssement():
print('Aptitude Cognitive Globale')
acgMark = int(input('Please enter a number: '))
if 0 <= acgMark < 2:
paragraphs_acg = inputM01acgti.paragraphs
elif 2 <= acgMark < 16:
paragraphs_acg = inputM01acgmi.paragraphs
elif 16 <= acgMark < 86:
paragraphs_acg = inputM01acgm.paragraphs
elif 16 <= acgMark < 98:
paragraphs_acg = inputM01acgms.paragraphs
elif 98 <= acgMark <= 100:
paragraphs_acg = inputM01acgts.paragraphs
else:
print('Your number is not between 0 and 100, try again..')
for para in paragraphs_acg:
get_para_data(output_doc, para)
As Вы можете видеть, что я прохожу через разные пробежки чтобы сохранить стиль моего входного документа, но мне не хватает шрифта и таблиц.
Кто-нибудь может мне в этом помочь?
Большое спасибо!
Xzi .