Новости

О проекте

Зачем?

Используемое ПО

Методика разработки сцен на PostScript

Операторы языка PostScript

Библиотека

Изучение языка

Статьи

Печать файлов PS

Создание каталога изображений

Печать образца доступными шрифтами

Ссылки...

Печать образца доступными шрифтами

    Создадим программу, печатающую строку всеми шрифтами, которые доступны через библиотеку, вместе с названием шрифта, под которым он известен.

    Подключаем библиотеку

      (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 

    Текст программы можно взять отсюда



    ©Фурашев А. 2002
    e-mail

    Хостинг от uCoz