Методика разработки сцен на PostScript Печать образца доступными шрифтами | Печать образца доступными шрифтамиСоздадим программу, печатающую строку всеми шрифтами, которые доступны через библиотеку, вместе с названием шрифта, под которым он известен.
![]() Подключаем библиотеку
(c:/aaa/bbb/lib-2.ps) run Задаем образец - строку, которую будем печатать всеми доступными шрифтами
/Образец (Французкие батоны не так вкусны, как хотелось бы!) def Устанавливаем праметры страницы. Также чтобы шрифты отображались в Ghostscript красиво включаем сглаживание. Но пользоваться ею нужно очень осторожно - используются нестандартные операции! Также сразу выставляем курсор в верхний левый угол страницы - печатаем сверху вниз.
/Страница.Новая {
20 mm Страница.Поле.Сверху!
РазрешитьСглаживание
Страница.Формат.А3
Страница.ОблПечати.Показать
Страница.Поле.Слева
Страница.Поле.Снизу
translate
/Печать.Курсор..Х 0 def
/Печать.Курсор..У
Страница.ОблПечати.Высота
def } def Определяем оператор, которая печатает строку с отступом х от края листа, но на той же строке.
/Печать.Строка {
Печать.Курсор..У
moveto
show } def Оператор, который переводит курсор в начало следующей строки
/Печать.Строка.Следующая {
/Печать.Курсор..У
Печать.Курсор..У
Шрифт.Высота 2 mul
sub
def
/Печать.Курсор..Х 0 def } def Оператор, возращающий true если курсор находится за пределами доступной области печати или, по другому, если достигнут конец страницы. В противном случае false out логич /Печать.КонецСтраницы? {
Печать.Курсор..У
0
А_меньшеилиравен_Б? } def
Оператор печатает образец текущим шрифтом.
/ПоказатьШрифт { Печатаем название шрифта, под которым он известен системе. (Записан в файле fontmap.ps)
dup Шрифт.Ариал-Рус 10 Шрифт.Размер! Шрифт.Применить 0 mm Печать.Строка % показал название шрифта Подключаем шрифт. Делаем название исполняемым и выполняем его. Ведь название шрифта на самом деле это имя оператора.
cvx exec % теперь подключаем этот шрифт Задаем его параметры. Чтоб упростить код они заданы в теле оператора
17 Шрифт.Размер! Шрифт.Применить Печатаем образец и начинаем новую строку.
Образец 50 mm Печать.Строка
Печать.Строка.Следующая Если достигли конца страницы, печатаем следующую.
Печать.КонецСтраницы? {
showpage
Страница.Новая
} if Закончили описание оператора! } def Переопределяем оператор из файла fontmap.ps, чтобы можно было отобразить шрифт.
/..ee {
pop ПоказатьШрифт } def Опеределение вспомогательных операторов закончили. Задаем новую страницу. И запускаем файл fontmap.ps, с переопределенным оператором ..ee он выступает как БД по доступным шрифтам.
Страница.Новая
(Шрифт.Ариал-Ж-Рус) ПоказатьШрифт
(Шрифт.Ариал-Рус) ПоказатьШрифт
(Шрифт.Ариал-К-Рус) ПоказатьШрифт
(Шрифт.Ариал-ЖК-Рус) ПоказатьШрифт
(c:/aaa/bbb/fontmap.ps) run Выводим последнюю страницу и заканчиваем работу.
showpage quit Текст программы можно взять отсюда |