Страница обновлена 31.07.2017

Муниципальное общеобразовательное учреждения "Санаторная школа-интернат №10" г. Ярославль

Страница обновлена 31.07.2017
Муниципальное общеобразовательное учреждения "Санаторная школа-интернат №10" г. Ярославль

Назад

Простенький скрипт для заполнения аттестатов (шаблоны проверены с аттестатами для 9 класса).
Предоставляется на условиях "как есть", полностью свободен для изменений и доработки.
Ниже описаны принципы работы скрипта, подготовка шаблонов, работа со скриптом. В конце будут даны некоторые рекомендации для доработки скрипта и шаблонов. если необходимых полей в них не окажется.
 

Содержание

 

1. Требования к компьютеру и системе.

PC с установленной ОС семейства Linux;
командный интерпретатор bash;
потоковый редактор sed;
awk;
find;
zip, unzip;
libreoffice/openoffice для просмотра и редактирования шаблонов, получившихся результатов.
Как правило если есть компьютер с ОС Linux, то первые 4 программы, скорее всего, установлены.
Проверено на ПК с установленной Ubuntu 10.04.4 с последними обновлениями.
 

2. Назначение файлов.

./readme.txt данный файл с описанием скрипта
./print_att.sh коротенький скрипт для потоковой печати лицевой стороны аттестата, обеих сторон приложений в выбранном пользователем порядке
./zap_att.sh непосредственно файл скрипта, который будет обрабатывать все данные
./shabl/ma_att.odt odt-шаблон лицевой части аттестата
./shabl/ma_pril1a.odt odt-шаблон лицевой части приложения
./shabl/ma_pril1.odt odt-шаблон лицевой части приложения, лишний лист, не используется.
./shabl/ma_pril2.odt odt-шаблон внутренней части приложения, где будут напечатаны предметы и отметки
./shabl/maq.txt список предметов, за которые будут выставлены отметки, а также ключевые слова, которые будут заменены в odt-шаблоне приложения.
 

3. Описание принципа работы скрипта.

Данный скрипт после запуска задаёт пользователю вопросы, на которые он отвечает посредством клавиатуры. После этого скрипт заменяет ключевые слова в odt-шаблонах на те значения, что ввёл пользователь. Работа скрипта повторяется по кругу, количество повторений равно количеству учащихся, заданное в самом начале работы скрипта пользователем.
Экспорт результатов производится в подпапку с названием класса в виде четырёх файлов: трёх odt и одного текстового, имя каждого из них начинается с фамилии, а также имени и отчества, укороченных до 3 первых букв, разделённых дефисом. Никто, в принципе, не мешает сделать один odt-шаблон и производить замены только в нём, однако когда каждая страница находится отдельным файлом, то довольно легко, почти без ухищрений можно их напечатать, не открывая каждую руками в libreoffice/openoffice.
 

4. Подготовка к работе.

Распакуйте (если вы получили все необходимые файлы и папки в архиве) или скопируйте все файлы и папки скрипта в ту подпапку, куда будут записываться данные об учащемся.
Дайте разрешение на исполнение файла скрипта как программы.
Отредактируйте перед началом работы шаблоны: впишите самостоятельно ФИО директора, наименование учреждения дату выдачи аттестатов. Из файла приложений удалите лишние предметы и добавьте нужные предметы и ключевые слова для замены их на отметки. Попробуйте распечатать на обрезанном А4-листе (аттестат с приложением короче на 5 мм с длинной и короткой сторон) и посмотрите, совпадает ли напечатанное с графами под заполнение на документах.
Если черновиков требуется много, то за символическую плату в размере 50 рублей полпачки или пачку бумаги могут обрезать здесь.
Предварительная подгонка очень важна: если всё совпадает, куча файлов с данными учащихся тоже будет совпадать, иначе после заполнения каждый из файлов, в который вписаны данные обучающихся, придётся подгонять вручную. Подгонка 60 файлов вместо трёх — более чем сомнительное удовольствие.
Убедитесь, что точно знаете, какой стороной совать бланки в принтер, а также что в принтере отключена двусторонняя печать. Если не уверены — пометьте стороны черновиков или даже перерисуйте начерно надписи с бланков и попробуйте попечатать ещё.
Отредактируйте файл вопросов maq.txt. Удалите лишние предметы с идентификаторами, добавьте свои, если они были предварительно добавлены в шаблон приложения к аттестату. Можете поменять список предметов в том порядке, в каком они написаны в журнале, откуда будут браться отметки учащихся. Необходимо это для того, чтобы скрипт задавал вопросы по отметкам в том же порядке, что будет у вас в журнале.
!ВАЖНО! ТОЛЬКО В ФАЙЛЕ maq.txt (odt-шаблонов это не касается): не сотавляйте пустых строк ни до, ни после списка предметов и слов-ключей. В наименованиях предметов замените пробел нижним подчёркиванием либо дефисом (на содержимом odt-шаблона это не отразится). В противном случае скрипт может нормально не сработать.
 

5. Запуск скрипта, работа с ним.

Запустите в терминале скрипт и поочерёдно отвечайте на вопросы. На всякий случай сделайте пробное заполнение на одного учащегося и убедитесь, что файлы генерируются ровно такие, какие нужно, распечатайте на черновике и сравните, совпадают ли напечатанные данные с оригиналом.
Если заполнение прошло нормально, файлы сгенерировались, перезапустите скрипт и вводите настоящие данные. После — печатайте получившиеся документы.
 

6. Потоковая печать файлов с помощью print_att.sh.

Печать может осуществляться как вручную, по одному документу (долго, но надёжно), так и потоково с помощью скрипта print_att.sh.
Подготовка к работе скрипта — дать права на запуск файла как программы.
После запуска выбирается офисный пакет, установленный в системе, папка, из которой будет производиться печать (должна располагаться в одной папке со скриптом), и порядок распечатывания аттестатов и приложений. Пользователь задаёт порядок печати (например печатать только аттестаты; напечатать сначала оборотную сторону приложения с отметками, затем аттестат и т.д.), вводя в нужном порядке через пробел слова "att", "pr1", "pr2".
После предварительной подготовки выводится результат, какие документы и в каком порядке уйдут на печать. Если пользователь согласен — подтверждает нажатием кнопки "enter", если нет — завершает работу скрипта кнопками "ctrl"+"c" без отправки данных на принтер, установленный по-умолчанию.
 

7. Устранение неисправностей.

Если скрипт не запускается — проверьте, есть ли разрешение на запуск скрипта (в свойствах файла должна стоять галочка "выполенние" или "разрешить выполнение файла как программы").
Если не создаются документы либо они пустые, то проверьте наличие требуемых программ и, возможно, путей к ним в переменных окружения.
 

8. Похожие программы для заполенния аттестатов.

То, что нашёл с ходу, но использовать, в связи с наличием своего "велосипеда", скорее всего не буду.
http://www.attestat-pdf.ru/ — заявлен как бесплатный онлайн (и кроссплатформенный соответственно) сервис для заполнения аттестатов.
http://free.glazov-edu.ru/index.php?newsid=49 — программа для Windows "ИвАттестат", разработанная отделом информатизации г. Иваново. На странице http://www.ivedu.ru/viewpage.php?page_id=241 можно скачать дополнительные шаблоны для аттестатов 9 и 11 классов.
 

9. Доработка скрипта и шаблонов под ваши нужды.

Минимальная доработка шаблона может производиться любым учащимся, умеющим править текстовые документы в openoffice. Доработка скрипта — учащимся, умеющим работать с паскалем в рамках обычной, неуглублённой программы по информатике за 9-11 классы, благо синтаксис bash'а довольно похож. По крайней мере добавить какие-то функции по образу и подобию точно может.
Рассмотрим наиболее типичные случаи, которые могут произойти. Можно было бы реализовать всё и сразу, но с одной стороны это повлекло бы большее количество вопросов к пользователю, с другой пришлось бы потратить дополнительное время на добавление ненужных лично мне как скриптописателю функций.
 
А. "Ой, слишком много файлов создаётся. Хочу, чтобы данные о каждом ученике сохранялись в один файл".
В этом случае создаём в libreoffice текстовый документ, выставляем необходимые размеры самой страницы, полей, копируем в него содержимое всех трёх шаблонов. Сохраняем в папке shabl с именем, например, ma-all.odt.
В начале скрипта из проверки убираем лишние файлы, дописываем наш новый файл, уменьшаем количество повторений в цикле проверки.
В конце скрипта вместо первого из шаблонов вписываем имя нашего нового шаблона, копируем в этот же цикл замену других ключевых слов. Циклы заполнения лишних теперь файлов убираем.
 
Б. "У нас есть один комьютер с линуксом, но я в этом openoffice ничего не понимаю. Мне приятней пользоваться microsoft word. Нельзя ли сделать, чтобы всё сохранялось в ворде?"
Можно, причём с минимальными изменениями. Всё дело в том, что docx-документы (в этом формате по-умолчанию сохраняет свои файлы Microsoft Word 2007/2010/2013) является также zip-архивом с некоторым количеством файлов внутри. Создайте файлы шаблонов по образу и подобию odt-файлов, добавьте в нужные места те же ключевые слова. Выясните, распаковав шаблон как документ, в какой из файлов сохраняется текстовая информация в документе.
Измените в последней части скрипта пути к шаблонам и распакованному из docx-файла xml-тексту (предполагаю, что это будет именно xml), где содержится текстовая информация и ключевые слова.
Возможно понадобится перевод кириллических символов в кодировку, отличную от UTF8, скорее всего cp1251. Делается добавлением в конвеер при перечитывании переменных из текстовго файла для проверки чего-то типа iconf -f UTF8 -t ваша_кодировка.
 

 

Контакты расположены по адресу https://int10.edu.yar.ru

Школа-интернат №10, г. Ярославль, 2013 год