Введение

DSC — это набор стандартов для PostScript, основанный на использовании комментариев, который определяет способ структурирования файла PostScript и способ представления этой структуры в машиночитаемом формате. Файл PostScript, соответствующий DSC, называется соответствующим документом. Необходимость в соглашении о структурировании возникает из-за того, что PostScript является полнофункциональным языком программирования по Тьюрингу. Таким образом, не существует гарантированного способа — кроме непосредственной печати документа — определить количество страниц в документе, размер страницы или перейти к определенной странице. Добавление структуры, с комментариями DSC, раскрывающими эту структуру, позволяет, например, интеллектуальному диспетчеру печати переупорядочивать страницы для печати или программе верстки находить ограничивающий прямоугольник файла PostScript, используемого в качестве графического изображения. Любая такая программа, принимающая файлы PostScript в качестве входных данных, называется менеджером документов. Чтобы файл PostScript правильно дистиллировался в PDF с помощью инструментов Adobe, он должен соответствовать основным стандартам DSC. Некоторые комментарии DSC выполняют вторую функцию, указывая менеджеру документов, какие действия следует выполнить, например, вставить шрифт или другой код PostScript (совместно называемый ресурсами) в файл. Комментарии DSC, выполняющие эту вторую функцию, больше похожи на директивы препроцессора и не являются чисто комментариями. Документы, использующие такие комментарии DSC, требуют работающего менеджера документов для достижения желаемого результата; отправка их непосредственно на принтер не сработает. DSC является основой для Encapsulated PostScript (EPS): файлы EPS — это документы, соответствующие стандартам DSC с дополнительными ограничениями. Набор комментариев DSC может быть расширен механизмом, называемым Open Structuring Conventions, который вместе со спецификацией EPS составляет основу ранних версий формата файлов Adobe Illustrator Artwork.

На первый взгляд

Основная предпосылка DSC – разделение пролога (статических определений) и скрипта (кода, влияющего на печатные выходные данные для конкретной задачи), а также запрет на использование определенных операторов PostScript, которые считаются неприемлемыми для описания страниц. Это обеспечивает базовый уровень предсказуемости кода PostScript, тем самым формируя основу для управляемости документа. Дополнительный уровень управляемости документа обеспечивается за счет разделения скрипта на раздел настройки документа, ноль или более функционально независимых страниц и необязательный трейлер (код очистки). ("Нулевое количество страниц" в DSC обычно означает "одну страницу без использования оператора PostScript ‘showpage’"). Функциональная независимость между страницами, а также запрет на использование дополнительных операторов PostScript в разделе страниц, формируют основу для независимости страниц, что позволяет переупорядочивать страницы и получать к ним доступ независимо и в произвольном порядке. Эта заданная структура затем раскрывается посредством разграничения файла PostScript комментариями DSC, которые обычно начинаются с двух знаков процента, за которыми следует ключевое слово. Некоторые ключевые слова должны сопровождаться двоеточием, необязательным пробелом, а затем серией аргументов. Наконец, документ помечается как соответствующий стандарту, начинаясь с комментария, начинающегося с “%!PS Adobe”, за которым следует номер версии DSC. Секции многократно используемого кода PostScript могут быть модулированы в наборы процедур (procsets, соответствующие библиотекам функций в других языках программирования) для упрощения генерации кода PostScript. Наборы процедур и другие ресурсы PostScript (например, шрифты) могут быть исключены из самого файла PostScript и сослаться на них извне с помощью директивы, такой как комментарий DSC; однако такая внешняя ссылка может работать только с менеджером документов, который понимает такие комментарии DSC. Версия DSC 3.0 была выпущена 25 сентября 1992 года. В спецификации указано: "Несмотря на то, что комментарии DSC представляют собой уровень связи, выходящий за рамки языка PostScript, и не влияют на конечный результат, их использование считается хорошим стилем программирования на языке PostScript". Таким образом, большинство программ, генерирующих PostScript, выводят комментарии, соответствующие DSC, вместе с кодом, хотя некоторые из этих программ фактически не создают соответствующие документы.