Состав коллекции fonts зависит от того, каким образом происходит обращение к ней. Если это происходит на уровне публикации, то в нее входят все шрифты, доступные InDesign. Если на уровне публикации - то только используемые в ней шрифты, причем среди них могут быть и отсутствующие. Приведенный далее пример иллюстрирует разницу между двумя способами считывания шрифтов.
var myApplicationFonts = арр.fonts; var myDocumentFonts = myDocument.fonts;
var myDocument = app.documents.add(); var myPage = myDocument.pages[0];
var myTextFrame = myPage.textFrames.add(); var myString = "Document Fonts:\r";
// Сначала - использованные в публикации for(i = 0; i<myDocumentE’ontNames. length; i++) { myString += myDocument.fonts [i].name +■ "\r";}
myString += "\r=============\r"
//А затем - все доступные InDesign: myString += "\rApplication Fonts:\r"; for(i = 0; i< myApplicationFonts.length; i++){ myString += myApplicationFonts[i]. name + "\r";}
6.1. Установка свойств текста
Рассмотрим способы изменения свойств текста. Все операции достаточно прозрачны, особое внимание нужно обратить лишь на задание конкретного начертания шрифта. Как правило, название шрифта имеет вид: familyName<tab>fontStyle Здесь:
famiiyName-название семейства;
<tab> - символ табуляции;
fontstyle- начертание шрифта.
Поэтому, если необходимо указать конкретный шрифт, не прибегая к заранее предопределенному через стиль, следует помнить об этом синтаксисе, например:
Times New Roman<tab>Bold
Если нужно изменить только начертание, прибегают к использованию fontstyle, например:
texts[0].fontstyle = 'Bold'
Пример форматирования текста приведен в листинге 6.1.
Листинг 6.1. Форматирование текста
var myDocument = арр.documents.add()
var myPage = myDocument.pages[0]
var myTextFrame = myPage.textFrames.add()
myTextFrame.contents = "Пример задания свойств тексту"
var myTextObject = myTextFrame.words[0]
II Для сокращения объема скрипта и повышения читабельности II используем объект по умолчанию: with (myTextObject){
alignToBaseline = false
appliedCharacterStyle = myDocument.characterStyles[1]
appliedFont = app.fonts["Adobe Caslon Pro"]; fontStyle = "Semibold Italic";
appliedLanguage = app.languagesWithVendors["English: USA"] appliedNumberingList = myDocument.numberingLists["[Default]"] appliedParagraphStyle = myDocument.paragraphStyles[1] autoLeading = 120
balanceRaggedLines = BalanceLinesStyle.noBalancing baselineShift = 0
bulletsAlignment = ListAlignment.leftAlign
bulletsAndNumberingListType = ListType.noList
bulletsCharacterStyle = myDocument.characterStyles[1]
bulletsTextAfter = '"'t"
capitalization = Capitalization.normal
composer = "Adobe Paragraph Composer"
desiredGlyphScaling = 100
desiredLetterSpacing = 0
desiredWordSpacing = 100
dropCapCharacters = 0
dropCapLines = 0
dropCapStyle = myDocument.characterStyles[1] dropcapDetail = 0