Adobe 0046100128056 Scripting Guide - Page 199

Applying formatting with XML rules

Page 199 highlights

CHAPTER 13: XML Rules XML Rules Examples 199 Applying formatting with XML rules The previous XML-rule examples have shown basic techniques for finding XML elements, rearranging the order of XML elements, and adding text to XML elements. Because XML rules are part of scripts, they can perform almost any action-from applying text formatting to creating entirely new page items, pages, and documents. The following XML-rule examples show how to apply formatting to XML elements using XML rules and how to create new page items based on XML-rule matching. The following script adds static text and applies formatting to the example XML data (for the complete script, see XMLRulesApplyFormatting): main(); function main(){ if (app.documents.length != 0){ var myDocument = app.documents.item(0); //Document set-up. myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points; myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points; myDocument.colors.add({model:ColorModel.process, colorValue:[0, 100, 100, 0], name:"Red"}); myDocument.paragraphStyles.add({name:"DeviceName", pointSize:24, leading:24, spaceBefore:24, fillColor:"Red", paragraphRuleAbove:true}); myDocument.paragraphStyles.add({name:"DeviceType", pointSize:12, fontStyle:"Bold", leading:12}); myDocument.paragraphStyles.add({name:"PartNumber", pointSize:12, fontStyle:"Bold", leading:12}); myDocument.paragraphStyles.add({name:"Voltage", pointSize:10, leading:12}); myDocument.paragraphStyles.add({name:"DevicePackage", pointSize:10, leading:12}); myDocument.paragraphStyles.add({name:"Price", pointSize:10, leading:12, fontStyle:"Bold"}); var myRuleSet = new Array (new ProcessDevice, new ProcessName, new ProcessType, new ProcessPartNumber, new ProcessSupplyVoltage, new ProcessPackageType, new ProcessPackageOne, new ProcessPackages, new ProcessPrice); with(myDocument){ var elements = xmlElements; __processRuleSet(elements.item(0), myRuleSet); } } else{ alert("No open document"); } function ProcessDevice(){ this.name = "ProcessDevice"; this.xpath = "/devices/device"; this.apply = function(myElement, myRuleProcessor){ with(myElement){ insertTextAsContent("\r", XMLElementPosition.afterElement); } return true; }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209

C
HAPTER
13: XML Rules
XML Rules Examples
199
Applying formatting with XML rules
The previous XML-rule examples have shown basic techniques for finding XML elements, rearranging the
order of XML elements, and adding text to XML elements. Because XML rules are part of scripts, they can
perform almost any action—from applying text formatting to creating entirely new page items, pages,
and documents. The following XML-rule examples show how to apply formatting to XML elements using
XML rules and how to create new page items based on XML-rule matching.
The following script adds static text and applies formatting to the example XML data (for the complete
script, see XMLRulesApplyFormatting):
main();
function main(){
if (app.documents.length != 0){
var myDocument = app.documents.item(0);
//Document set-up.
myDocument.viewPreferences.horizontalMeasurementUnits =
MeasurementUnits.points;
myDocument.viewPreferences.verticalMeasurementUnits =
MeasurementUnits.points;
myDocument.colors.add({model:ColorModel.process,
colorValue:[0, 100, 100, 0], name:"Red"});
myDocument.paragraphStyles.add({name:"DeviceName", pointSize:24,
leading:24, spaceBefore:24, fillColor:"Red", paragraphRuleAbove:true});
myDocument.paragraphStyles.add({name:"DeviceType", pointSize:12,
fontStyle:"Bold", leading:12});
myDocument.paragraphStyles.add({name:"PartNumber", pointSize:12,
fontStyle:"Bold", leading:12});
myDocument.paragraphStyles.add({name:"Voltage", pointSize:10, leading:12});
myDocument.paragraphStyles.add({name:"DevicePackage", pointSize:10,
leading:12});
myDocument.paragraphStyles.add({name:"Price", pointSize:10, leading:12,
fontStyle:"Bold"});
var myRuleSet = new Array (new ProcessDevice,
new ProcessName,
new ProcessType,
new ProcessPartNumber,
new ProcessSupplyVoltage,
new ProcessPackageType,
new ProcessPackageOne,
new ProcessPackages,
new ProcessPrice);
with(myDocument){
var elements = xmlElements;
__processRuleSet(elements.item(0), myRuleSet);
}
}
else{
alert("No open document");
}
function ProcessDevice(){
this.name = "ProcessDevice";
this.xpath = "/devices/device";
this.apply = function(myElement, myRuleProcessor){
with(myElement){
insertTextAsContent("\r", XMLElementPosition.afterElement);
}
return true;
}