Преобразование PostScript
Приложение Предварительного просмотра автоматически преобразовывает файлы PostScript в PDF. 2D API Кварца обеспечивает функции, которые можно использовать для выполнения преобразования PostScript в приложении. Кварц 2D функции преобразований PostScript не доступен в iOS.
Выполните эти шаги для преобразования документа PostScript документу в формате PDF:
Запишите обратные вызовы. Кварц передает состояние на процессы страницы посредством обратных вызовов.
Заполните структуру обратных вызовов.
Создайте объект преобразователя PostScript.
Создайте объект поставщика данных для файла PostScript, который Вы хотите преобразовать.
Создайте потребительский объект данных для PDF, следующего из преобразования.
Выполните преобразование.
Каждый из этих шагов обсужден в следующих разделах.
Запись обратных вызовов
Обратные вызовы обеспечивают путь к Кварцу для информирования приложения состояния преобразования. Если Ваше приложение имеет пользовательский интерфейс, можно использовать информацию о статусе для обеспечения обратной связи для пользователя, как показано на рисунке 15-1.
Можно обеспечить обратные вызовы, чтобы сообщить приложению, что 2D Кварц:
Запуск преобразования (
CGPSConverterBeginDocumentCallback
). Кварц 2D передачи Ваш обратный вызов универсальный указатель на данные Вы предоставляете.Окончание преобразования (
CGPSConverterEndDocumentCallback
). 2D передачи кварца Ваш обратный вызов универсальный указатель на данные, которыми Вы снабжаете и булево значение, указывающее успех (true
) или отказ (false
).Запуск страницы (
CGPSConverterBeginPageCallback
). 2D передачи кварца Ваш обратный вызов универсальный указатель на данные, которыми Вы снабжаете, в настоящее время не использующийся номер страницы и объект CFDictionary.Окончание страницы (
CGPSConverterEndPageCallback
). 2D передачи кварца Ваш обратный вызов универсальный указатель на данные, которыми Вы снабжаете и булево значение, указывающее успех (true
) или отказ (false
)Развитие с преобразованием (
CGPSConverterProgressCallback
). Этот обратный вызов периодически вызывается всюду по преобразованию. Кварц 2D передачи Ваш обратный вызов универсальный указатель на данные Вы предоставляете.Отправка сообщения о процессе (
CGPSConverterMessageCallback
). Существует несколько видов сообщений, которые могут быть отправлены во время процесса преобразования. Наиболее вероятными являются сообщения замены шрифтов и любые сообщения, что сам код PostScript генерирует. Любой PostScript обменивается сообщениями записанный вstdout
направляются посредством этого обратного вызова — обычно они отлаживают или сообщения о состоянии. Кроме того, если документ уродлив, могут быть сообщения об ошибках.2D передачи кварца Ваш обратный вызов универсальный указатель на данные, которыми Вы снабжаете и объект CFString, содержащий сообщение о преобразовании.
Освобождение объекта преобразователя PostScript (
CGPSConverterReleaseInfoCallback
). Если у Вас есть предоставленные данные и выполнять какие-либо дополнительные задачи постобработки, можно использовать этот обратный вызов для освобождения универсального указателя. Кварц 2D передачи Ваш обратный вызов универсальный указатель на данные Вы предоставляете.
Посмотрите Ссылку CGPSConverter для прототипа, за которым следует каждый обратный вызов.
Заполнение структуры обратных вызовов
Необходимо присвоить номер версии и обратные вызовы, которые Вы создали к надлежащим полям CGPSConverterCallbacks
структура данных (показанный в Перечислении 15-1). Версия 0
. Присвоиться NULL
к тем полям, для которых Вы не предоставляете обратный вызов.
Перечисление 15-1 структура данных обратных вызовов преобразователя PostScript
struct CGPSConverterCallbacks { |
unsigned int version; |
CGPSConverterBeginDocumentCallback beginDocument; |
CGPSConverterEndDocumentCallback endDocument; |
CGPSConverterBeginPageCallback beginPage; |
CGPSConverterEndPageCallback endPage; |
CGPSConverterProgressCallback noteProgress; |
CGPSConverterMessageCallback noteMessage; |
CGPSConverterReleaseInfoCallback releaseInfo; |
}; |
Создание объекта преобразователя PostScript
Вы вызываете функцию CGPSConverterCreate
создать объект преобразователя PostScript. Эта функция берет три параметра:
Указатель на универсальные данные, которые Вы хотите, передал Вашим обратным вызовам. Можно предоставить
NULL
если Вы не должны предоставлять данные.Указатель на заполненный
CGPSConverterCallbacks
структура данных.NULL
. Это поле резервируется для будущего использования.
Создание потребительских объектов провайдера данных и данных
Вы создаете объект поставщика данных путем вызывания функции CGDataProviderCreateWithURL
, предоставление объекта CFURL, указывающего адрес файла PostScript, который Вы хотите преобразовать.
Точно так же Вы создаете потребительский объект данных путем вызывания функции CGDataConsumerCreateWithURL
, предоставление объекта CFURL, указывающего адрес документа в формате PDF, следующего из преобразования.
Выполнение преобразования
Вы вызываете функцию CGPSConverterConvert
выполнять фактическое преобразование от PostScript до PDF. Эта функция берет в качестве параметров:
Объект преобразователя PostScript.
Объект поставщика данных, снабжающий данными PostScript.
Потребитель данных возражает для преобразованных данных.
NULL
. Этот параметр резервируется для будущего использования.
Функциональные возвраты true
если преобразование успешно.
Можно вызвать функцию CGPSConverterIsConverting
проверять, развивается ли все еще преобразование.