Нам часто приходится заполнять шаблоны сертификатов и дипломов, бланков и прочих документов. Данная операция занимает много времени и сил, постоянно повторяющиеся рутинные действия можно и нужно автоматизировать. В данной статье мы рассмотрим создание умного шаблона сертификатов и дипломов, а также об автоматизации процесса его заполнения на Python.
Мы создадим программу CertificateAuto, которая автоматически заполняет шаблоны презентаций: для сертификатов и дипломов, бланков отчетов и прочих документов, данными из файла Excel.
Знания и умения автоматизировать процессы заполнения шаблонных документов, позволят вам сэкономить время и силы, исключит ошибки при переносе данных из Excel таблицы.
Используемые инструменты: PowerPoint - для создания шаблона сертификатов и дипломов, Python, библиотеки PySide2- для создания графического интерфейса программы, Python-PPTX- для работы с файлами презентации, openpyxl - для получения данных из файла Excel.
1) Устанавливаем необходимые библиотеки через командную строку:
pip install python-pptx
pip install openpyxl
pip install PySide2
2) Создаем дизайн шаблона заполняемого документа.
3)Далее на фоновое изображение необходимо наложить текст, печать, факсимиле и другие элементы, которые будут оставаться неизменными. Используем для этого — MS PowerPoint.
4) Далее на шаблон необходимо в нужных местах, где мы будем подставлять данные, нужно написать текстовую переменную заключенную в фигурные скобки - {фио}, {баллы}, {дата}и так далее. Одно слово (на любом языке) и внутри {}.
5) Информацию по всем сотрудникам, заявленным к награждению, мы вносим в файл Excel (его же будем использовать как источник данных).
6) Импортируем необходимые библиотеки и модули в проект. Библиотеку pptx и модули этой библиотеки для работы с PowerPoint. Для чтения excel импортируем библиотеку openpyxl.
import openpyxl as op
from pptx import Presentation
import os
7) С помощью следующего блока программного кода читаем данные из Excel-листа в Python framework.
8) Указываем место на локальном диске, в котором будет создана папка для наших наградных электронных документов, в переменной self.path_save храниться путь к папке к созданным документам
9) Создаем функцию, c помощью которой обратим pptx-файл в pdf-файл.
10) Заполняем информацию по занятым местам:
11) Итоговый продукт выглядит следующим образом.
12) Для удобства работы со скриптом создадим графический интерфейс к программе используя библиотеку PySide2 и Qt дизайнер.
13) Импортируем необходимые библиотеки и модули в проект.
import sys
from PySide2 import QtGui, QtWidgets
from PySide2.QtWidgets import QFileDialog, QMessageBox
from PySide2.QtCore import QCoreApplication
14) Открываем Qt дизайнер и создаем новый проект.
15) На форме размещаем элементы управления текстовые поля, кнопки, Checkbox. В итоге получаем следующий дизайн программы:
16) Сохраняем макет программы в формате .ui
17) Конвертируем файл .ui в файл .py. Открываем командную строку и пишем команду:
pyside_uic "Путь к файлу.ui"-x -o "Путь к файлу.py"
18) Полученный файл .py импортируем в проект
from certificate_form import Ui_MainWindow
C уважением, Карян Армен.
Занимаюсь разработкой прикладных программ.
email SoftSAR@yandex.ru
Telegram @SoftSar_am