"АльтерПечать КК" - пользовательская доработка на основе старого режима печати карточек
Вашему вниманию предлагается программное средство, позволяющее по-новому задействовать такое наследие АРМ Каталогизатор, как прежний режим печати каталожных карточек ("Корректировка -> Печать КК"). Как известно, при стандартном применении этот режим задействует OLE-объект Microsoft Word версий 97-2003, который (Word) обязательно должен быть установлен на машине клиента. Более того, в новых версиях Windows при попытке использования этого режима - даже при наличии соответствующей версии офисного пакета - может возникать ошибка. Сами разработчики отказались от поддержки этого режима в новых версиях. Что ж, это не мешает нам использовать эту унаследованную опцию, тем более что она позволяет самому пользователю при желании задавать собственную программу печати. Именно этой возможностью мы и воспользуемся для того, чтобы реализовать на базе старого забытого (хотя и не всеми) режима новый подключаемый плагин - "
АльтерПечать КК". Теперь для печати карточек в этом режиме вам не потребуется какой-либо сторонний текстовый редактор, поскольку практически все его возможности могут быть реализованы в самом плагине. Вы также можете попробовать реализовать свой собственный плагин на базе этой функции. Правда, стоит учитывать тот факт, что когда создавался режим "Печать КК", в ИРБИСе ещё не существовало механизма вызова внешних плагинов с передачей и возвратом из них записи, так что достаточно затруднительно реализовать на основе этого режима что-либо значительное, позволяющее производить изменения с текущей записью. Тем не менее на заре ИРБИСа это был, можно сказать, единственный путь для реализации таких плагинов (см. [
irbis.gpntb.ru]) Сама запись передаётся в пользовательскую программу в формате ALL через буфер обмена Windows. Соответственно, чтобы применять к ней какие-либо функции форматирования (что очевидно для печати КК), её сначала надо оттуда считать и поместить в буфер Ирбиса, используя IRBIS64_CLIENT.DLL. То есть всё надо делать "ручками", но, как мы увидим, это не так уж плохо, поскольку позволяет на ходу изменять параметры форматирования карточки (в новом режиме печати такой возможности нет).
Я включил сюда весь проект данного плагина на C++ Builder с его исходными текстами, а также необходимый для работы компонент Dream RichEditor. Именно он позволяет создавать интерфейс неплохого текстового редактора, не пользуясь никакими OLE-объектами. К сожалению, компонент ныне заброшен его создателями и найти в Интернете какую-либо информацию по его использованию сейчас затруднительно, поскольку сайт разработчиков больше не функционирует. Всё, что сохранилось, - это справочный файл (который я тоже разыскал не без труда) и демонстрационный пример, шедший в комплекте. Почему именно этот компонент, а не какой-либо другой?
Во-первых, несмотря на некоторую недоработанность и глючность, он содержит целый набор полезных модулей, которые по отдельности найти трудно (речь идёт о средах программирования Delphi и C++ Builder). Это и парсер и импорт-экспорт RTF, и поддержка регулярных выражений, и поддержка WYSIWYG для печати, за которую, например, создатель библиотеки компонентов RichView просит сумму, почти в десять раз превышающую стоимость его базового решения для жителей СНГ (880 рублей).
Во-вторых, сам статус abandonware компонента Dream RichEditor позволяет нам применять его для создания нашего учебного проекта модуля печати карточек. Теперь в принципе каждый пользователь-разработчик сможет при желании сделать доработку этого режима для собственных нужд, пользуясь моим опытом работы с этим компонентом. Поэтому я призываю разработчиков Ирбиса не убирать окончательно кнопку и пункт меню "Печать КК". Ведь в загружаемых с их помощью программах совсем не обязательно вызывать старые форматы, основанные на языке форматирования абзаца - [
irbis.gpntb.ru]. Можно с тем же успехом вызывать и все выходные RTF-форматы. Другое дело, что у меня это пока не получилось (просто не знаю, как обрабатывать в своей программе файл !!kk.srw и ему подобные), поэтому в моей программе пока можно только посмотреть на список этих форматов для КК
(он соответствует списку выходных форматов для режима "Сервис -> Печать").
На текущий момент реализовано не так уж много функций. Можно выбирать из списка режим работы для текущей записи (которая была передана в программу через буфер обмена). Это либо "Старый режим" (он пока стоит по умолчанию, потому что хотя бы частично работает - выводит вид карточки в поле текстового редактора), либо "Новый режим" (который тоже будет поддерживаться, если разработчики мне в этом помогут), либо "Статьи из оглавления". Последний режим позволяет печатать карточки на отдельные пункты оглавления (обычно это статьи из сборников научных работ). Здесь из одного списка выбирается нужное поле (922 или 330), а из другого - требуемое повторение поля (пункт оглавления), при выборе которого в окне текстового редактора сразу появляется требуемое представление карточки. Собственно, я и начал писать эту программу ради подобной функции (надоело всё время копировать в буфер обмена нужную статью из списка, выдаваемого штатными выходными форматами для карточек).
Вот примерный внешний вид приложения:
Для того, чтобы приложение могло вызываться из АРМ Каталогизатор в режиме "Печать КК", необходимо изменить следующие параметры в секции [Main] файла конфигурации irbisc.ini:
KKKOLEpriz=0
KKKPrintProg=AlterPrint.exe
Редактировано 1 раз. Последний раз 21.07.2013 10:58 пользователем S-presso.