Файлы RTF и приписанные строки
Формат Rich Text Format (RTF) является текстом, форматирующим язык, разработанный Microsoft Corporation. Можно представлять символ, абзац и атрибуты формата документа с помощью простого текста с вкрапленными командами RTF, группами и escape-последовательностями. RTF широко используется в качестве формата обмена документа для передачи документов с их информацией о форматировании через приложения и вычислительные платформы. Apple расширил RTF с помощью пользовательских команд, описанных в этой главе.
Чтение и запись данных RTF
Расширения Набора Приложения для NSAttributedString
добавьте поддержку чтения и записи многих популярных форматов документов, включая RTF и RTFD, как описано в Отформатированных Документах и Приписанных Строках в Приписанном Строковом Руководстве по программированию. Несмотря на то, что NSAttributedString
имеет удобные методы для чтения и записи RTF и данных RTFD в частности те методы имеют преимущество перед методами общего назначения, и они испытывают недостаток в полезном error:
параметр.
Расширения Apple RTF
Apple расширил язык RTF для поддержки текстовых атрибутов и форматирующих конструкций, доступных в текстовой системе Какао, но не представимый со стандартным RTF. Расширения Apple принимают ту же форму как стандартные команды RTF, группы и Escape. Команды RTF состоят из наклонной черты влево, сопровождаемой строкой буквенных символов (чувствительных к регистру) сопровождаемый дополнительным целочисленным значением параметра, которое может быть положительным или отрицательным. Группы RTF начинают с левой фигурной скобки ({), сопровождаемый последовательностями RTF дополнительно включая другие группы, закрытые правой фигурной скобкой (}). Escape RTF состоят из наклонной черты влево, сопровождаемой специальным символом, такой как \{
, который указывает литеральную левую фигурную скобку вместо начала группы.
RTF включает понятие о месте назначения, которое является группой, содержащей команду RTF и текст возможно, чтобы быть вставленным в различном расположении в документе, таком как сноска. Escape-последовательность \*
указывает, что читатели RTF, не понимающие следующую команду должны проигнорировать содержание места назначения.
Размерности в RTF выражены в twips — один twip является одной двадцатой точки.
Таблица 1 перечисляет расширения Apple RTF для символьных атрибутов.
Последовательность RTF |
Описание |
Параметр (ы) |
---|---|---|
\CocoaLigatureN |
Управление лигатурой |
Значение 0 = никакие лигатуры, 1 = лигатуры по умолчанию, 2 = все лигатуры. Значение по умолчанию 1. |
\expansionN |
Фактор расширения, который будет применен к глифам |
2000 * значение Значение по умолчанию 0. |
\obliquenessN |
Скос, который будет применен к глифам |
2000 * значение 0 = никакой скос. Значение по умолчанию 0. |
\fsmilliN |
Более прекрасная спецификация для размера шрифта |
1000 * размер шрифта. Записанный в дополнение к \fs, когда \fs не является значением полуточки или интегралом; значение переопределяется \fs, таким образом, это должно быть сразу записано после \fs. Значение по умолчанию, управляемое \fs. |
\shadxN \shadyN |
Теневое смещение, записанное в сочетании с \shad |
X и y смещает в twips (0 = никакое смещение). Значения по умолчанию являются \shadx3 и \shady-3. |
\shadrN |
Теневая размытость, записанная в сочетании с \shad |
Радиус размытия в twips. 0 = никакая размытость. Значение по умолчанию 0. |
\strikecN |
Перечеркнутый цвет |
Номер цвета. Значение по умолчанию то же как приоритетный цвет текста. |
\strikestyleN |
Перечеркнутый стиль, записанный, где, \strike, \striked, \strikew не достаточны |
Стиль и маска рисунка, значение 0 = ни один; 0x8000 = словом; стили: 1 = единственный, 2 = толстый, 9 = дважды; образцы: 0x100 = отмеченный точкой, 0x200 = тире, 0x300 = штрихпунктир, 0x400 = точка штрихпунктира. Значение по умолчанию 0. |
\strokecN |
Цвет обводки |
Номер цвета. Значение по умолчанию то же как приоритетный цвет текста. |
\strokewidthN |
Ширина штриха глифа, записанная в сочетании с \outl. |
20 * перечеркивают ширину как процент размера точки шрифта. 0 = никакой штрих. Значение по умолчанию 0. Отрицательные величины указывают, что глифы и перечеркиваются и заполняются; штриховая ширина взята от абсолютного значения параметра. |
\ulstyleN |
Стиль подчеркивания, записанный, где стандарт \ul команды не достаточны |
Стиль и маска рисунка, значение 0 = ни один; 0x8000 = словом; стили: 1 = единственный, 2 = толстый, 9 = дважды; образцы: 0x100 = отмеченный точкой, 0x200 = тире, 0x300 = штрихпунктир, 0x400 = точка штрихпунктира. Значение по умолчанию 0. |
{{\\присоединение \widthN \heightN NeXTGraphic} строка} |
Имя присоединяемого файла в той же папке как файл RTF (обычно упакованный в документе RTFD) |
Присоединение является присоединяемым именем файла, закодированным в UTF-8 и должным образом RTF-оставленным. Параметры ширины и высоты дополнительно указывают присоединяемый размер в twips. Строка всегда 0xAC. |
{{} {\\* \glidN basestring} строка} |
Глиф ID для явно указанных глифов. (Дополнительное {} пара необходимо для работы вокруг ошибки читателя RTF в версии 10.2 OS X и ранее.) |
Идентификатор глифа (параметр к \glid). basestring является строкой, которую ID глифа предназначается для переопределения; этот атрибут тогда применяется к указанной строке. Обычно строка и basestring являются тем же, несмотря на то, что строка могла бы содержать многократные экземпляры basestring. |
{{} {\\* \glidN basestring\glcolN} строка} |
Глиф ID для явно указанных глифов |
Символьный идентификатор (параметр к \glid) и символьный набор (параметр к \glcol). Набор IDs: 0 = идентификационные данные, 1 = Adobe-CNS1, 2 = Adobe-GB1, 3 = Adobe-Japan1, 4 = Adobe-Japan2, 5 = Adobe-Корея. |
{{} {\\* \glid basestring\glnam glyphname} строка} |
Глиф ID для явно указанных глифов |
glyphname является именем глифа в кодировании UTF-8. |
\AppleTypeServicesUN |
Символьное управление формой |
Значение Значение интерпретируется как селектор Apple Type Services kCharacterShapeType + 1. Значение 0 отключает этот атрибут. Значение по умолчанию 0. |
Таблица 2 перечисляет расширения Apple RTF для атрибутов абзацев.
Таблица 3 перечисляет расширения Apple RTF для атрибутов документа.