Package For GoLive

Transcription

Package For GoLive
Package For GoLive
Technical Note #10084
Version InDesign CS
03 Sep 2003
ADOBE SYSTEMS INCORPORATED
Corporate Headquarters
345 Park Avenue
San Jose, CA 95110-2704
(408) 536-6000
Copyright 2003 Adobe Systems Incorporated. All rights reserved.
The information in this document is furnished for informational use only, is subject to change without notice, and should not be construed as a
commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies that
may appear in this document. The software described in this document is furnished under license and may only be used or copied in accordance with
the terms of such license.
Adobe, Adobe After Effects, Adobe InDesign, Adobe PhotoDeluxe, Adobe Premiere, Adobe Photoshop, Adobe Illustrator, Adobe Type Manager,
ATM and PostScript are trademarks of Adobe Systems Incorporated that may be registered in certain jurisdictions. Macintosh and Apple are
registered trademarks, and Mac OS is a trademark of Apple Computer, Inc. Microsoft, Windows, Windows 95, Windows 98, and Windows NT are
registered trademarks of Microsoft Corporation. All other products or name brands are trademarks of their respective holders..
Rev #
Date
Author
Comments
0.1
31 May 2003
Lee Huang
First draft
0.2
6 Aug 2003
Lee Huang
Incorprated Review
0.3
14 Aug 2003
Lee Huang
Final check for CS release
0.4
27 Aug 2003
Lee Huang
Removed extensibility discussion.
0.5
03 Sep 2003
Ken Sadahiro
Updated title page image.
Contents
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Terminology and definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Key Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Repurposing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Package Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Design and architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Package For GoLive Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
PackageForWebSrc_PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
kPackageForWebSrc_DocRoot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
kPackageForWebSrc_CopyImage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
kPackageForWebSrc_InCopyStory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
kPackageForWebSrc_Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
kPackageForWebSrc_Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
kPackageForWebSrc_Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
kPackageForWebSrc_Prefs and kPackageForWebSrc_IDmap . . . . . . . . . . . . . . . . . . . . . 17
kPackageForWebSrc_Link. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
kPackageForWebSrc_GLPrefs and kPackageForWebSrc_GLStyles . . . . . . . . . . . . . . . . . . 18
kPackageForWebSrc_XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
kPackageForWebSrc_DocTOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
A look at layout.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Frequently asked questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Appendix A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Appendix B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
aid:ClippingPathSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
aid:ContourOption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
aid:EPS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
iii
Contents
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
aid:FlattenerPreference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
aid:GraphicLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
aid:Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
aid:Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
aid:Inline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
aid:InlineList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
aid:Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
aid:LayerList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
aid:layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
aid:Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
aid:MarginPreference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
aid:MasterSpread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
iv
03 Sep 2003
Package For GoLive
Contents
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
aid:MasterSpreadList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
aid:Movie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
aid:Oval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
aid:Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
aid:PDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
aid:PDFAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
aid:PICT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
aid:Polygon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
aid:Rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
aid:Sound. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
aid:Spread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
Package For GoLive
03 Sep 2003
v
Contents
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
aid:SpreadList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
aid:TextFrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
aid:TextFramePreference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
aid:TextWrapPreference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
aid:WMF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
vi
03 Sep 2003
Package For GoLive
#10084 Package For GoLive
Overview
#10084 Package For GoLive
Overview
This document describes the InDesign CS feature called Package for GoLive, which allows
users to repurpose InDesign CS documents. Out of the box, user can create a web page based
on the document with very little effort. Developers may find many creative ways to make use of
the packaged content. For example, one may perform data interchange in a scalable way with
InDesign CS, or incorporate the packaged content with a proprietary asset management or
"diff " tool. Also from a workflow point of view, Package For GoLive seperates the layout and
contents into different files, which can provide the foundation for a good workflow solution.
The possibilities are endless.
This technote discusses the Package for GoLive feature from a developer's perspective. The
purpose of this note is to show:
•
How Package For GoLive is implemented, the important commands, interfaces that are
critical in supporting this feature.
•
How to read the Package For GoLive's output XML files. Although the main purpose of
the package is to be used in GoLive 7, we believe developers would be interested in
understanding the output file format.
Terminology and definitions
This section defines terms used within this document alone.
•
DOM; "The Document Object Model is a platform- and language-neutral interface that
will allow programs and scripts to dynamically access and update the content, structure
and style of documents." (Definition courtesy of www.w3.org). The scripting architecture
evolved in InDesign CS into a User Document Object Model architecture. It is an enduser's view of the document, including objects, properties, and events. Exposing features
to the User DOM makes them accessible to scripting and other clients such as Package
For GoLive. See http://www.w3.org/DOM/ for general information about DOM.
•
InDesign Script Object; Majority of the InDesign features are exposed to the User DOM in
the form of script object. A script object is capable of handling script event and reporting
the object's properties. Package For GoLive relies on the script object to report its own
properties and convert it into a XML attribute for output.
•
Namespace, XML; a collection of names identified by an universal resource identifier
(URI), which are used in XML documents as element types and attribute names. Names
from XML namespaces may appear as qualified names, which contain a single colon,
#10084 Package For GoLive
7
#10084 Package For GoLive
Key Concepts
separating the name into a namespace prefix and a local part. For instance, the Adobe
InDesign Package For GoLive's packaged XML file format has the URI
"http://ns.adobe.com/AdobeInDesign/3.0/". Elements in an Package For GoLive's
packaged XML file are prefixed by the character sequence "aid:" (read as : Adobe
InDesign). XML Namespaces are defined in the W3 specification document "XML
Names" [http://www.w3.org/TR/REC-xmlnames/].
•
Package For GoLive Tasks; The command that performs the Package For GoLive processes
tasks. A task is a subatomic phase of the Package for GoLive command, for example,
creating log file, creating PDF, etc.
•
SAX; "SAX is the Simple API for XML, originally a Java-only API. SAX was the first
widely adopted API for XML in Java, and is a “de facto” standard. And there are versions
for several programming language environments other than Java now." (Definition
courtesy of http://www.saxproject.org/)
•
Script Provider; A service provider boss that registers as a script service and reports the
script objects they support, as well as the supported events and properties on each object.
It is the script provider that actually has the implementation for finding the properties
from the document/workspace and executing commands based on the script event. It also
provides an implementation to find a script object, get and set its properties, and execute
its methods (called Events).
•
XML Fragment; "A general term to refer to part of an XML document, plus possibly some
extra information, that may be useful to use and interchange in the absence of the rest of
the XML document." (Definition courtesy of www.w3.org). In InDesign, all of the
exportable/scriptable objects' corresponding boss objects aggregate an IXMLFragment,
which is used to extract XML from an object, or generate an object instance from XML
data.
Key Concepts
Repurposing
The Package for GoLive feature allows users to repurpose content of InDesign books and
documents in an easy manner. Please read the "Repurposing Documents for the Web" chapter
of the “InDesign CS User Guide” for details on how to use the feature. With this feature, an
InDesign document that is designed for print or PDF can be easily repurposed for web use. The
Package For GoLive makes InDesign's document format transparent, because the resulting
package is a collection of XML files and images, sounds, and movies. For the first time, a user
can examine the contents of an InDesign file without opening it in the application. By reading
the layout.xml in a text editor, one can realize how many pages exist in that document, and
what kind of page items are in the pages along with other properties.
Package Content
The result of Package For GoLive is a folder with multiple XML files and sub-folders for
images, sounds, and movies used by the document. The user can view the package by opening
8
#10084 Package For GoLive
Key Concepts
its toc.html. The layout and the look of the original InDesign document or book are preserved
in a PDF that is also generated as additional package information. A user of GoLive 7 can use
the PDF generated by Package For GoLive for quick drag’n’drop operation to create a new web
page. The following table shows a typical makeup of packaged content.
TABLE 1.1 Package Content of "Package For GoLive"
File/Folder
Description
toc.html
Table of content file that can be viewed in
a browser.
root.xml
XML root file of the package.
Package.pdf
Exported PDF file of the InDesign
document.
layout.xml
Layout XML file, which contains all layout
information like spreads, master spreads,
and pageitems.
geometry.xml
Geometry XML file with pageitem
coordinates.
links.xml
Links XML file with all external links.
story_156.incd
Each story will be exported into its own
file as an InCopy story, where the number
at the end of the file name ("156" in this
example) is usually the unique id (UID)
of the story.
idmap.xml
ID Mapping XML file, which contains the
mapping table for all objects and in what
XML file they are implemented.
tags.xml
Tags XML file with all used tags.
images/...
Image folder with sub-folders for each
image.
sounds/...
Sub-folder for sound files
movies/...
Sub-folder for movie files
media/...
Sub-folder for unknown media files
glprefs.xml
GoLive preference files (only used by
GoLive ).
glstyles.css
GoLive CSS files (only used by GoLive ).
#10084 Package For GoLive
9
#10084 Package For GoLive
Design and architecture
API
Package For Web has two main commands: kPackageDocForWebCmdBoss and
kPackageBookForWebCmdBoss. Since a book is only a collection of documents, internally
kPackageBookForWebCmdBoss processes kPackageDocForWebCmdBoss commands
iteratively for each document. The packaging of a document is divided in two parts: creating a
list of task items and executing task items. Task items correlate to packaging phases, for
example, creating a folder, exporting a document to PDF, etc. The functionality of generating
the list of task items is encapsulated in CreatePkgForWebListCmdBoss, which is called by
kPackageDocForWebCmdBoss. The commands and associated data interfaces are discussed in
more details in the section titled "Design and Architecture".
Design and architecture
Package For GoLive is accessible via the File >> Package for GoLive menu and the Book
Palette's Package >> Web... menu.. The user is asked for a destination folder for the package,
which can also reside on a WebDAV server. Additional image conversion options and other
general preferences can be specified through the Package For GoLive Options Dialog that is
accessible from the Package For GoLive dialog.
Before we go behind the scenes, we need to understand Package For GoLive adds the following
interfaces to the session and document workspaces. These interfaces are used to store user
settings before Package For GoLive's commands get processed.
TABLE 1.2 Package For GoLive AddIn Interfaces to kWorkspaceBoss
10
Interface ID
Interface
Description
IID_IPKGFORWEBVIE
WEROPTIONS
IXMLExportSessionOp
tions
Package general options as seen
in the General tab of the UI
IID_IPKGFORWEBIM
AGEOPTIONS
IXMLExportOptions
Package image conversion
options
IID_IPKGFORWEBUS
EDTD
IBoolData
Boolean indicating whether
DTD was used or not.
Unsupported
IID_IPKGFORWEBCR
EATELOGFILE
IBoolData
Bool whether to create log file.
kTrue in debug, kFalse in release
IID_IPKGFORWEBLA
STPANEL
IWidgetIDData
Internal use, for the Package For
GoLive to remember which
panel in the tab selectable dialog
was last viewed in UI
#10084 Package For GoLive
Design and architecture
TABLE 1.3 Package For GoLive AddIn Interfaces to kDocWorkspaceBoss
Interface ID
Interface
Description
IID_IPKGFORWEBIM
AGEOPTIONS
IXMLExportOptions
Package image conversion
options
IID_IPKGFORWEBUS
EDTD
IBoolData
Boolean indicating whether
DTD was used or not
IID_IPKGFORWEBLA
STURL
IStringData
File URL of the last package
The commands kPackageDocForWebCmdBoss and kPackageBookForWebCmdBoss are used
to package the front document or the book in the book panel. When the user invokes Package
for GoLive from the File menu, kPackageSaveDialogBoss is used to present a Save Dialog. The
saved folder’s path chosen by the user will be saved in the IStringData
(IID_IPKGFORWEBLASTURL) of the kDocWorkspaceBoss via the
kPkg4WebSaveLastFolderCmdBoss. Then a Package For GoLive options dialog will be
presented, which allows the user to select things like image export options. The values set in
this dialog are saved through the IXMLExportSessionOptions and IXMLExportOptions added
in kWorkspaceBoss and kDocWorkspaceBoss. Once these export options are set, they are
copied from the workspace to the command’s data interface as illustrated in the following steps
(assuming the front document is being packaged):
•
Copy kDocWorkspaceBoss’s IXMLExportOptions (with IID of
IID_IPKGFORWEBIMAGEOPTIONS) to the kPackageDocForWebCmdBoss’s
IXMLExportOptions (IID_IXMLEXPORTOPTIONS).
•
Query kWorkspaceBoss’s IXMLExportSessionOptions, use it to check if user has chosen a
web browser to view the output, if yes, the file path of the browser is converted into a
PMString and saved in the IStringData (IID_ILAUNCHVIEWERDATA) of
kPackageDocForWebCmdBoss.
•
DTD preference (unsupported), an IBoolData (IID_IPKGFORWEBUSEDTD) on the
kWorkspaceBoss is copied to IBoolData (IID_IPKGFORWEBUSEDTD) of the
kPackageDocForWebCmdBoss. Note that the command kPkgForWebUseDTDCmdBoss
can be used to the set the data in the kWorkspaceBoss. Again, this is not supported in
InDesign CS.
•
Log file preference (if it should be created), an IBoolData
(IID_IPKGFORWEBCREATELOGFILE) in the kWorkspaceBoss is copied to IBoolData
(IID_IPKGFORWEBCREATELOGFILE) of the kPackageDocForWebCmdBoss. There are
a couple ways to change the Boolean in the kWorkspaceBoss: one is through the
kPkgForWebCreateLogFileCmdBoss, the other is by removing the entire log file task from
the kPackageDocForWebCmdBoss’s task list, which will be discussed in more details later.
After the above options are set for kPackageDocForWebCmdBoss or
kPackageBookForWebCmdBoss, the command is processed to package the document or book.
#10084 Package For GoLive
11
#10084 Package For GoLive
Design and architecture
The command's item list is set with a UIDList that is initialized with an IDocument* or an
IBook*.
The kPackageDocForWebCmdBoss is based on kPackageForWebBaseCmdBoss, which in turn
is based on kPackageForWebListDataBoss. Please refer to kPackageForWebListDataBoss in the
HTML-based reference documentation for a detailed diagram of the boss hierarchy and the
interfaces the bosses aggregate.
When kPackageDocForWebCmdBoss is processed, its IUIFlagData interface
(IID_IUIFLAGDATA) is used to determined if the progress bar should be displayed. Packaging
is divided in phases. Package For GoLive uses a progress bar dialog with two task progress bars.
The upper main task progress bar shows the phase name. The lower task progress bar usually
shows the filename that is being processed without the entire path. If the boolean in
IUIFlagData is set to kFalse when the command is processed, the progress bar will be
suppressed.
As mentioned in the Key Concepts section, the packaging of a document is divided in two
parts: creating a list of task items and executing task items. kPackageDocForWebCmdBoss uses
the kCreatePkgForWebListCmdBoss to assemble the list of tasks for packaging purposes. The
section titled "Package For GoLive Tasks" lists and provides details of all possible tasks that
default kPackageDocForWebCmdBoss can carry. After the document is packaged, the
IStringData (IID_ILAUNCHVIEWERDATA) aggregated by the kPackageDocForWebCmdBoss
is used to determine if a viewer should be launched to view the package. When the IStringData
contains a valid URL, the corresponding application will be launched to open the toc.html
generated by the command.
Note that not all the tasks will be executed by the command; some tasks are added to the
command’s task list based on the command’s data interface value. For example, the IBoolData
(IID_IPKGFORWEBCREATELOGFILE) on kPackageForWebBaseCmdBoss determines if the
kPackageForWebSrc_Log task should be added. Please refer to earlier discussion in this section
on how the options are being set. When a task is added, 6 parameters are collected, and they are
stored in the 6 data list interfaces aggregated by kPackageForWebListDataBoss, which is the
base boss class for kPackageDocForWebCmdBoss. The following list summarizes what these
data interfaces for:
12
1.
IStringListData (IID_ISOURCETYPELISTDATA) is the task type as described above, e.g.
kPackageForWebSrc_Log
2.
IStringListData (IID_IFILEACTIONLISTDATA) is the file to be processed in tasks like
kPackageForWebAction_CheckOut
3.
IStringListData (IID_ISRCFILEURLLISTDATA) is the source file URL, the source file
referring to the linked file
4.
IStringListData (IID_IDESTFILEURLLISTDATA) is the package destination folder, for
example, for layout.xml, it will be the user chosen package folder. For image files, each
image is placed under its own sub folder under “package folder:images”
5.
IStringListData (IID_IDESCRIPTIONLISTDATA) stores the description in the task bar
of the progress bar
#10084 Package For GoLive
Package For GoLive Tasks
6.
IUIDListData (IID_ISOURCEUIDLISTDATA) is the source’s linked UID. For example,
when the source type is kPackageForWebSrc_CopyImage, the UID will be of the linked
image
It is important to note that data in these 6 lists need to be synchronized all the time. Entry 1 of
lists' items 2-5 above should represent the data needed to perform the task associated with the
task in entry 1 of list 1. The entry 2 of lists 2-5 should represent the data needed to perform the
task associated with the task in entry 2 in list 1, and so on.
After the task list is compiled, it is time for the kPackageDocForWebCmdBoss to execute those
tasks one by one on based on the order in the list. A lot of tasks involved are file related tasks,
for example, kPackageForWebSrc_Folder will create all the folder/subfolders necessary to
organize the packaged files, and kPackageForWebSrc_Sound may copy the original file to the
destination. In the following section, some tasks will be discussed in more details, but we will
skip most of the file tasks.
An SDK snippet "SnpPackageForGoLive.cpp" is provided to better illustrate how to process a
kPackageDocForWebCmdBoss.
Package For GoLive Tasks
This section provides more detaled information on the Package for GoLive tasks, by describing
how they are implemented. This section may abbreviate references to the complicated
architecture of InDesign XML and Scripting subsystem, which is fundamental to the Package
For GoLive features.
kPackageDocForWebCmdBoss uses the kCreatePkgForWebListCmdBoss to assemble a list of
tasks for packaging purpose. Here is a list of all possible tasks that the default
kPackageDocForWebCmdBoss can carry out so that kCreatePkgForWebListCmdBoss can add
these tasks to its internal lists.
TABLE 1.4 kPackageDocForWebCmdBoss Tasks
kPackageDocForWebCmdBoss
tasks
description
kPackageForWebSrc_Log
Creating Log File
kPackageForWebSrc_SaveOldFiles
Saving Old Files for recovery
kPackageForWebAction_CheckOut
Checking Out Files from managed server
if applicable
kPackageForWebSrc_Folder
Creating Folders
kPackageForWebSrc_PDF
Creating PDF
kPackageForWebSrc_DocRoot
Creating Root File, root.xml
kPackageForWebSrc_CopyImage
Packaging Images, the original/optimized
image gets copied to destination
#10084 Package For GoLive
13
#10084 Package For GoLive
Package For GoLive Tasks
kPackageDocForWebCmdBoss
tasks
description
kPackageForWebSrc_Sound
Copying Sound Files
kPackageForWebSrc_Movie
Copying Movie Files
kPackageForWebSrc_Media
Copying any other Media Files that's not
image, sound or movie
kPackageForWebSrc_Styles
Exporting Styles
kPackageForWebSrc_InCopyStory|kPacka
geForWebSrc_Story
Exporting Stories
kPackageForWebSrc_Layout
Exporting Layout to layout.xml
kPackageForWebSrc_Geometry
Exporting Geometry to geometry.xml
kPackageForWebSrc_Tags
Exporting Tags to tags.xml
kPackageForWebSrc_Prefs
Exporting Preferences to prefs.xml
kPackageForWebSrc_Idmap
Creating ID Map File, idmap.xml
kPackageForWebSrc_DocDTD
Creating DTD
kPackageForWebSrc_Link
Creating Links File, links.xml
kPackageForWebSrc_GLPrefs
Creating GoLive Preference file
(glprefs.xml). It is actually empty, but the
file is required by GoLive.
kPackageForWebSrc_GLStyles
Saving GoLive Styles, empty
kPackageForWebSrc_XML
Validating XML Files generated by all the
tasks
kPackageForWebSrc_DocTOC
Creating TOC file, toc.html
kPackageForWebAction_CheckIn
Checking In Files to managed server if
applicable
A book is only a collection of documents, so to package a book,
kPackageBookForWebCmdBoss internally processes kPackageDocForWebCmdBoss
commands, i.e. it iterates through all the documents in the book and processes
kPackageDocForWebCmdBoss on each document. Also, the following book-only tasks will be
added when the kPackageBookForWebCmdBoss first starts up, then the above tasks specific to
the document will be added later as the kPackageDocForWebCmdBoss is processed for each
document. So the result of the kPackageBookForWebCmdBoss is a book package folder that
contains a root and table of contents (toc) file plus package folder(s) for each document, and
the content of the document package folder is exactly the same as if the document is packaged
alone.
14
#10084 Package For GoLive
Package For GoLive Tasks
TABLE 1.5 kPackageBookForWebCmdBoss only tasks
Additional kPackageBookForWeb- description
CmdBoss tasks
kPackageForWebSrc_BookRoot
Creating Book's Root File
kPackageForWebSrc_XML
Validating XML Files
kPackageForWebSrc_BookTOC
Creating Book TOC
PackageForWebSrc_PDF
kPDFExportCmdBoss is used to create a PDF based on the document being processed. The
kPDFExportCmdBoss’s IOutputPages is initialized with the UIDs of the document pages,
obtained from the IPageList interface of the kDocBoss. The item list of the
kPDFExportCmdBoss is also set with the UIDs of the pages. The destination for the export is
obtained from the IStringListData (IID_IDESTFILEURLLISTDATA) of the
kPackageDocForWebCmdBoss. It is a PMString containing an URL, for example,
"file://localhost/Users/user1/Desktop/Pkg4Web/Untitled-1/Untitled-1.pdf ". (assuming the
package folder is on the user’s desktop with the name as shown) The PMString containing the
URL needs to be converted into a SysFile before it can be set in the ISysFileData interface of
kPDFExportCmdBoss. Also remember the document's UID is stored in the
kPackageDocForWebCmdBoss's item list when it is processed. Finally, IPDFExportPrefs of
kPDFExportCmdBoss is used to set the export option. The default PDF export options used by
Package For GoLive is illustrated in the Appendix A.
kPackageForWebSrc_DocRoot
IXMLStreamUtils is used to create an output stream, IXMLOutStream, to the destination file
URL obtained from the IStringListData (IID_IDESTFILEURLLISTDATA) of the
kPackageDocForWebCmdBoss. First, the IXMLExportUtils::WriteDocumentHeader() writes
the root.xml’s header to the out stream based on IXMLExportOptions, aggregated on the
kPackageDocForWebCmdBoss. Next, the InDesign’s major format number (defined in
FormatNumber.h) and the build number is written. In root.xml, you can see the element
aid:version has 2 attributes, which corresponds to the major format number and the build
number. Finally, the command’s task list will be iterated through to see what files will be
generated in this operation, excluding the asset files like images and the log file.
kPackageForWebSrc_CopyImage
The linked UID obtained from the IUIDListData (IID_ISOURCEUIDLISTDATA), aggregated
by the kPackageDocForWebCmdBoss, is the UID of the image to be copied. Using the UID, the
corresponding IDataLink pointer can be obtained. IXMLExportUtils then is used to export the
image. For example, to copy the original, the IXMLExportUtils::CopyOriginal() is called to
accomplish the task. Also IXMLExportOptions on the kPackageDocForWebCmdBoss is used
to determined if any image format operation is needed.
#10084 Package For GoLive
15
#10084 Package For GoLive
Package For GoLive Tasks
kPackageForWebSrc_InCopyStory
By default, Package For GoLive exports the document’s story using InCopy CS file format
through the IInCopyWorkflow interface. Specifically, IInCopyWorkflow::ExportStory() is
used. The method has the following signature (see IInCopyWorkflow.h for more details)
virtual ErrorCode ExportStory(const UIDRef& storyRef, IPMStream* iOutStream,
IInCopyExportOptions* exportOptions) = 0;
The storyRef is the target story to be exported, which is obtained from the IUIDListData
(IID_ISOURCEUIDLISTDATA), aggregated by the kPackageDocForWebCmdBoss. The
iOutStream parameter is created with the help of StreamUtil::CreateFileStreamWrite(), which
requires the destination file URL obtained from IStringListData
(IID_IDESTFILEURLLISTDATA) and the InCopy file type and creator type. Then the final
IInCopyExportOptions option is set as follow:
•
Encoding type: obtained from the IXMLExportOptions of the
kPackageDocForWebCmdBoss
•
Suppress Style Table : kFalse
•
Suppress Swatch List : kFalse
•
Suppress XMP Data : kFalse
•
Suppress XML Tag List : kFalse
kPackageForWebSrc_Layout
This task generates Layout XML file, which contains all layout geometry like spreads, master
spreads, and page items. The file is divided into 4 main sections: Master Spread List, Regular
Spread List, Layer List, and Inline List, represented by the elements <aid:MasterSpreadList>,
<aid:SpreadList>, <aid:LayerList>, and <aid:InlineList> respectively. In InDesign CS, all of the
objects exportable as XML are described as fragments through IXMLFragment. Each fragment
corresponds to an element in the document object model. For example, the kPageBoss
aggregates IXMLFragment and IDOMElement, which are used to describe the element
<aid:Page> in a document exported to XML.
Package For GoLive describes the document’s layout using the aforementioned 4 sections, by
traversing the document root (kDocBoss) and querying its IMasterSpreadList, ISpreadList,
ILayerList to get the corresponding objects. Note that the Inline list is obtained by iterating
through all text stories. Then 4 “dummy” XML fragments (kPkg4WebDummyFragmentBoss)
are created for these 4 lists elements. The purpose of the dummy fragment is to describe the list
elements since there is no such thing available in the document model. The dummy element
does not have any attributes associated with it, and it basically holds the name of the element,
for example, MasterSpreadList. And more importantly, it holds the lists of IXMLFragment of
its children. For example, the dummy fragment MasterSpreadList has a reference to all
IXMLFragment of the master spread objects. When Package For GoLive is ready to output the
layout, it will go through all 4 dummy fragments and check if it has any children elements. If
the answer is yes, the children’s IXMLFragment will be used to describe itself. And it is done
recursively so all the descendent objects from the 4 main root objects are described in the
layout.xml.
16
#10084 Package For GoLive
Package For GoLive Tasks
Note that the entry in the IUIDListData (IID_ISOURCEUIDLISTDATA) on the
kPackageDocForWebCmdBoss for this task contains the document's UID.
kPackageForWebSrc_Geometry
All the page items on the document are gathered in a sorted list based on their UID,. The
following geometry data is reported in the geometry.xml for each page item:
•
Inner to page transformation matrix – first the InnerToPasteboardMatrix function is used
to get the inner-to-pasteboard matrix for the page item, then the matrix is concatenated
with the inner-to-pasteboard matrix for the (first) page object.
•
Path bounds – the IGeometry::GetPathBoundingBox() method is used to get the path
bounds.
•
Visible Bounds – the IShape::GetPrintedBBox() is used to get the visible bounds.
kPackageForWebSrc_Tags
If a document has been tagged with XML tags, its tags list and the structure will be written out
to tags.xml. Each tag that is represented by the kXMLTagBoss also aggregates the
IXMLFragment and IDOMElement interfaces. The kPackageForWebSrc_Tags task uses a
similar technique as explained in the kPackageForWebSrc_Layout section to report all the tags
under the element <aid:TagList>. Also, the IXMLUtils::QueryXMLTagList() method is used to
get the list of tags associated with the document. Then each tag is iterated, and its associated
IXMLFragment interface is queried to describe the tag itself. Note that
kPkg4WebDummyFragmentBoss is also used here to create the <aid:TagList> element.
Following the <aid:TagList> element is the document’s XML structure section, represented by
the <aid:XMLElement> element. Note that each element in document's logical structure is
represented by the IIDXMLElement interface. The IXMLUtils::QueryRootElement() returns
the root element of the structure. To get to the corresponding IXMLFragment that describes
the root, IXMLScriptUtils::CreateXMLItemProxyScriptObject() method is used to query the
IScript interface, which in turn is used to query the IXMLFragment. This shows the tight
integration of the scripting model and the logical structure in an InDesign CS document. Once
the IXMLFragment of the root element is obtained, its hierarchy is traversed to output all its
descendents.
kPackageForWebSrc_Prefs and kPackageForWebSrc_IDmap
kPackageForWebSrc_Prefs generates pref.xml and kPackageForWebSrc_IDmap generates
idmap.xml. By default, prefs.xml is not generated by the command. prefs.xml collects all
unreferenced preferences, i.e. those preferences that have not been output in previous XML
files, and idmap.xml lists all the reference objects in all the output XML files. So
kPackageForWebSrc_Prefs needs to be at the end of all XML file tasks but before
kPackageForWebSrc_IDmap. The Package For GoLive module keeps an internal list of
referenced/unreferenced document objects that exist in the document. Whenever an object is
written to an XML file, it will update the list so it knows what to report in pref.xml.
#10084 Package For GoLive
17
#10084 Package For GoLive
Package For GoLive Tasks
kPackageForWebSrc_Link
The package’s task list is first examined to see if the task has a corresponding source URL stored
in the IStringListData (IID_ISRCFILEURLLISTDATA) in the kPackageDocForWebCmdBoss.
If yes, the task may be associated with an external file, which will have a link in the document.
In that case, the corresponding linked UIDRef stored in the IUIDListData (
IID_ISOURCEUIDLISTDATA) is retrieved. The retrieved UIDRef then is converted to an
IDataLink. From IDataLink, the content can be obtained (through ILinkObjectReference), and
also its associated IDOMElement can be queried. Finally, the aid:id attribute in the <aid:link>
element is the IDOMElement’s self value, i.e. its DOM ID.
kPackageForWebSrc_GLPrefs and kPackageForWebSrc_GLStyles
Nothing is output by these tasks. The 2 files are used primarily by GoLive.
kPackageForWebSrc_XML
This task validates the XML files generated so far. InDesign has a service provider
kXMLParserServiceBoss that provides SAX-based parsing of an XML-based stream. Note that
the kXMLParserServiceBoss’s main service interface is ISAXServices and the data interface is
ISAXParserOptions. Package For GoLive uses the kXMLParserServiceBoss service provider to
validate its output XML files. Please see ISAXServices.h for how to query this service provider.
The ISAXParserOptions associated with the ISAXServices are set as follows (note the
parserOptions below is an InterfacePtr of ISAXParserOptions).
parserOptions->SetValidationFeature(kTrue);
parserOptions->SetNamespacesFeature(kTrue);
parserOptions->SetNamespacePrefixesFeature(kFalse);
parserOptions->SetCharacterSize(ISAXParserOptions::kSize8);
parserOptions->SetAutoValidationFeature(kTrue);
parserOptions->SetWarnCaseXMLDECLFeature(kFalse);
parserOptions->SetWarnCaseDTDFeature(kFalse);
parserOptions->SetShowWarningAlert( progressBar != nil );
Note that the ISAXServices::ParseStream() is the method used to validate the XML structure. It
requires a XML stream plus several handlers (please see ISAXServices.h for more details).
Package For GoLive uses CSAXContentHandler as basic default event handler to handle things
like the start/end of an element. For the rest of the handlers in the ParseStream() parameter list,
nil(s) are used. Finally, the StreamUtil::CreateFileStreamRead() method is used to create a
IPMStream based on the XML’s url.
kPackageForWebSrc_DocTOC
This task generates an HTML file with tables that summarize the assets generated by Package
For GoLive. It uses IXMLOutStream to write the underlying HTML source.
18
#10084 Package For GoLive
A look at layout.xml
A look at layout.xml
When you open layout.xml generated by the Package For GoLive, you may wonder: "How do I
make sense of this file"? This section explains how the XML file is generated, and provides
some help in reading the file.
When Package For GoLive writes out a particular XML fragment, it uses
IXMLFragment::Write() method to do the job. Remember layout.xml divides layout geometry
into 4 sections and “dummy” XML fragments (kPkg4WebDummyFragmentBoss) are created
for each of the sections. Let’s take the SpreadList element as an example to explain how it is
written out. The kPkg4WebDummyFragmentBoss and its base class is declared as the
following:
/** Used in PackageDocForWebImpl::QueryLayoutXMLFragments
and implemented in Pkg4WebDOMElements.cpp */
Class
{
kPkg4WebXMLFragmentBoss,
kInvalidClass,
{
/** Implementation */
IID_IXMLFRAGMENT,kXMLNoContentFragmentImpl,
/** Implementation */
IID_IDOMELEMENT,kPkg4WebDOMElementImpl,
/** IN: UIDRef of the spread. */
IID_IUIDDATA, kUIDDataImpl,
/** IN: children. */
IID_IPMUNKNOWNREFLISTDATA, kPMUnknownRefListDataImpl,
}
},
/** Used in PackageDocForWebImpl::QueryLayoutXMLFragments
and implemented in Pkg4WebDummyElements.cpp */
Class
{
kPkg4WebDummyFragmentBoss,
kPkg4WebXMLFragmentBoss,
{
/** Implementation */
IID_IDOMELEMENT,kPkg4WebDummyElementImpl,
/** IN: optional element name used by
kPkg4WebDOMElementImpl like "MasterSpreadList". */
IID_ISTRINGDATA, kStringDataImpl,
}
},
#10084 Package For GoLive
19
#10084 Package For GoLive
A look at layout.xml
If you take a look at kPkg4WebDummyFragmentBoss, you see that the 2 main interfaces on
this boss are IDOMElement and IXMLFragment. IDOMElement represents a node in the
DOM used to import and export InDesign documents as XML, and the IXMLFragment
represents an XML element. In practice, every IXMLFragment has an associated
IDOMElement. When IXMLFragment is asked to describe itself, it looks to its peer
IDOMElement to find out information from the DOM.
When kPkg4WebDummyFragmentBoss is created for the SpreadList element, 2 things are
being cached; the element’s name (SpreadList) is stored in IStringData (IID_ISTRINGDATA),
and the spread object’s (kSpreadBoss) IXMLFragment is stored in IPMUnknownRefListData
(IID_IPMUNKNOWNREFLISTDATA). This cached data will be later queried by the
implementation of the IDOMElement on the kPkg4WebDummyFragmentBoss to figure out
how many children objects are in this SpreadList element. When it is time to write out the
SpreadList element, its IXMLFragment::Write() will be called, and the following steps will be
executed:
1.
Query the peer IDOMElement to collect element attributes
2.
Process the attributes so it’s serialized in the XML format
3.
Collect children of the current element through the help of IDOMElement
4.
Write the element’s tag
5.
If the element has children, loop through all children and call its respective
IXMLFragment::Write() to describe itself
Starting from the IXMLFragment:Write() of kPkg4WebDummyFragmentBoss for the
SpreadList, the first thing is to collect its attributes, since it is a dummy element, no attribute is
available for this element. Note the kPkg4WebDummyFragmentBoss’s IDOMElement
implementation returns kFalse in its HasAttribute() method. Then in step 3, the
GetChildElements() method will return a list of IXMLFragment from its descendent spreads,
which are cached in IPMUnknownRefListData. And then in step 4 the element
<aid:SpreadList> is written to file, then, finally in step 5 its child spread will describe itself,
which is a more complicated event. Now the spread represents something from the document,
it will have real attributes and more children, i.e. pages, preferences, etc.
When the spread’s IXMFragment (see kSpreadBoss) requests its attributes, it seeks help from
its peer IDOMElement, mainly, the method GetAttributes(). For most of the layout objects,
this method will go to InDesign’s scripting subsystem to get the attribute information. Why
does scripting has anything to do with export? Actually, the Save As XML and Package For
GoLive features both rely on the scripting subsystem to provide pertinent DOM information
for the object being exported. Basically, all the exportable objects need to support scripting. In
order for its object to be recognized as exportable, a plug-in needs to implement
IScriptProvider and IScript, and also it needs to provide ScriptElementInfo in a .fr file for its
exportable object. And it is the script provider’s responsibility to return correct attribute
information to the IDOMElement’s GetAttributes(). For detailed information, please refer to
the "Making Your Plug-in Scriptable" (scriptableplugin.pdf) technote.
IDOMElement::GetAttributes() returns the attributes of the type, AttributeNameValueList,
which is a KeyValuePair vector, (see IDOMElement.h), where you will find the key is a
DOMAttributeName and the value is DOMAttributeValue. The value is serialized and
20
#10084 Package For GoLive
A look at layout.xml
converted into a PMString before it is sent to an output stream. For example, if you have an
attributes list (of type AttributeNameValueList) returned by IDOMElement::GetAttributes(),
the following code will serialize and format the attributes into PMStrings.
IDOMElement::AttributeNameValueList& domList;
IDOMElement::AttributeNameValueList::const_iterator attr
= domList.begin();
while (attr != domList.end())
{
PMString domSerializedValue;
ErrorCode error =
attr->Value().Serialize(domSerializedValue);
// code to store the domSerializedValue somewhere
++attr;
}
The serialization process is needed so when an XML file is being read, the parser can make
sense of the text string. How can a parser tell the text string "123" is actually a text string or a
integer? One solution is to prefix the string with some type identifier, so when the text string is
"u_123" or "l_123", the parser will know how to interpret the "123" into correct type. The
DOMAttributeValue::Serialize() is used to convert an attribute value in the document DOM
into a XML attribute value (string). If we take a look at layout.xml, the attribute values are hard
to understand. Refer to the following table for help in deciphering the type identifier prefixes.
TABLE 1.6 Attribute Type Prefix
When
see
you
It means the attribute value is
0
Empty Type
b
Boolean Type
c
String Type, usually corresponds to a PMString
s
Short Type
l
Long Type
d
Double Type
o
Object Type, the value usually is the UID of the object
t
Date Type, actually an uint64.
f
File Type, corresponds to a SysFile
e
Enum Type
u
Unit Type
x
List Type, could be same or mixed type in the list
#10084 Package For GoLive
21
#10084 Package For GoLive
A look at layout.xml
When
see
you
It means the attribute value is
y
Object List Type
z
Record Type, this is mainly for AppleScirpt record.
Notes:
•
Double Type: A Double type is output as a hex encoded numbers, it represents a
PMReal/uint64/int64 value. Given an PMReal, one can call ToDouble to convert it to a
double, cast it into an uint64, then use a private function to output into a serialized
PMString that represents the double.
•
Date Type: The time is output as 64-bit double. GlobalTime class (see GlobalTime.h) can
be used to convert time in double format into a human readable format.
•
Enum Type: Usually corresponds to an enum or an int value of an attribute. In the
Appendix B, when an enum is used for an attribute, a look up table will be provided to
show possible values for that attributes.
•
Unit Type: When an attribute value needs to be output as an Unit type, usually, the
internal value (e.g. PMReal, int32, etc) will be passed into ScriptData::SetUnit() for
conversion into a Unit based on what the user's ruler settings were at the time the
attribute is output. The caller needs to tell SetUnit() whether the data represents a
horizontal or vertical value, or simply convert it into Point. And then Unit Type is output
as a 64-bit double. Please see ScriptData.h for more information.
TABLE 1.7 Attributes Serialized Prefix
When you see
It means
t
the attribute value is true
f
the attribute value is false
~
int64 (double) Separator
_
Type Value Separator
~sep~
Type Value Separator Entity
r
the attribute is read only
TABLE 1.8 Serialized Object References Prefix
22
When you see
It means
:
Range Connector
[
Index Start
]
Index End
#10084 Package For GoLive
A look at layout.xml
When you see
It means
.
Path Separator
d
Document Tag
n
Nil Pointer
(
Name Start
)
Name End
i
ID Start
u
UID Start
Let’s take a look at an example from layout.xml. The Appendix has a section that lists the
partial file format of layout.xml based on a very basic document.
<aid:Page aid:Name="rc_1"
aid:AppliedSection="ro_u80"
aid:Index="rl_1"
aid:DocumentOffset="rl_1"
aid:Bounds="rx_4_u_0~0_u_0~0_u_4088c000~0_u_40832000~0"
aid:AppliedTrapStyle="o_u79"
aid:MarginPreferences="ro_u7f.MarginPreference[1]"
aid:MasterPageItems="ry_0"
aid:AppliedMaster="o_u81"
aid:AllPageItems="ry_f_o_ue1_o_ud0_o_ucc_o_ucb_o_uc7_o_
uad_o_uc5_o_uc1_o_uac_o_ua6_o_ua8_o_
ua1_o_u9c_o_ua2_o_u98"
aid:TabOrder="y_0"
aid:Id="rl_7f"
aid:Label="c_"
aid:Self="rc_u7f">
<aid:MarginPreference
aid:ColumnCount="l_1"
aid:ColumnGutter="u_40280000~0"
aid:Top="u_40420000~0"
aid:Bottom="u_40420000~0"
aid:Left="u_40420000~0"
aid:Right="u_40420000~0"
aid:Self="rc_u7f.MarginPreference[1]"/>
</aid:Page>
aid:Name="rc_1" indicates this attribute is a read-only string type, since it is an attribute for
the page, we can probably tell the page name is “1”, i.e. page 1.
aid:AppliedSection ="ro_u80" indicates this attribute is a read-only object type, and its UID is
80.
#10084 Package For GoLive
23
#10084 Package For GoLive
Frequently asked questions
aid:Index ="rl_1" indicates this attribute is a read-only long integer type, and its index, a long
integer, is 1.
aid:DocumentOffset ="rl_1" indicates this attribute is a read-only long integer type, and its
document offset, a long integer, is 1.
aid:Bounds ="rx_4_u_0~0_u_0~0_u_4088c000~0_u_40832000~0" indicates this attribute is a
read-only list type, the list type is followed by a number that tells how many elements are in the
list. In this case, there are 4 elements in the list, which represent top, left, bottom, right of the
bounds. Then the elements in the list follow the list number count (separated by the ‘_’). And
each element starts with the element’s type, which is a unit type, u. The number 0~0 and
40832000~0, etc are actually hex encoded numbers. For more information, refer to the
previous discussion regarding double and unit type. The 0~0 is probably easy to guess, it
represents the number 0.0. 40832000~0 is a bit encrypted, it actually represents the number
612.0.
aid:AppliedTrapStyle ="o_u79" indicates this attribute is an object type, and its UID is 79.
aid:MarginPreferences ="ro_u7f.MarginPreference[1]" indicates this attribute is a read-only
object type, the object is something called MarginPreference[1]. The [1] does not mean
anything special, but MarginPreference is the IScript name for that object. It corresponds to
the child element "MarginPreference" of the page, and the u7f corresponds to the page’s UID,
which has this margin preference.
aid:MasterPageItems="ry_0" indicates this attribute is a read-only object list type, but the 0
means empty in the list.
aid:AppliedMaster="o_u81" indicates this attribute is an object type, and its UID is 81.
aid:AllPageItems="ry_f_o_ue1_o_ud0_o_ucc_o_ucb_o_uc7_o_uad_o_uc5_o_uc1_o_uac_o_
ua6_o_ua8_o_ua1_o_u9c_o_ua2_o_u98" indicates this attribute is a read-only object list type,
there are 15 (the hex f) items on the list, and the 15 page items are all object (The o’s) types
with the UIDs e1, d0 and so on.
aid:TabOrder="y_0" indicates this attribute is an object list type with no item in the list.
aid:Id="rl_7f " indicates this attribute is a read-only long integer type with 7f as its value. Note
this is actually the UID of the object (in the example’s case, the kPageBoss).
aid:Label="c_" indicates this attribute is a string type with an empty string.
aid:Self="rc_u7f " indicates this attribute is a read-only string type type with u7f as its value.
Note this is actually the string form of the object’s UID.
Frequently asked questions
Q: The log file seems to be created only in the debug build of InDesign CS. How do I get one in the
release build?
A: The following snippet shows one way of doing it by using
kPkgForWebCreateLogFileCmdBoss:
24
#10084 Package For GoLive
Frequently asked questions
InterfacePtr<IWorkspace>
workSpace( gSession->QueryWorkspace() );
InterfacePtr<IBoolData>
logOptions( workSpace, IID_IPKGFORWEBCREATELOGFILE );
if( logOptions && !logOptions->GetBool() )
{
InterfacePtr<ICommand>
setLogCmd( CmdUtils::CreateCommand(
kPkgForWebCreateLogFileCmdBoss ) );
setLogCmd->SetItemList( ::GetUIDRef( workSpace ) );
InterfacePtr<IBoolData>
cmdData( setLogCmd, UseDefaultIID() );
cmdData->Set( kTrue );
CmdUtils::ProcessCommand( setLogCmd )
}
Q: I see IID_IPKGFORWEBUSEDTD (IBoolData) with kPackage4WebUseDTDImpl is
aggregated in the kPackageDocForWebCmdBoss. Is there any DTD support in Package For GoLive
for this InDesign version?
A: No, the DTD feature is not supported in this version.
Q: What is the difference between the IXMLExportOptions in the kWorkspaceBoss
/kDocWorkspaceBoss and kPackageDocForWebCmdBoss?
A: The IXMLExportOptions in the workspace will be copied to the one in the
kPackageDocForWebCmdBoss before the command is processed, then some of the options in
that interface will be customized based on other data interfaces on the same command boss.
Q: Is the InCopy CS file format the only way to export text in Package For GoLive?
A: The IBoolData interface with ID IID_IPKGFORWEBUSEINCOPYSTORY on the
kPackageDocForWebCmdBoss lets you specify if text should be exported as InCopy format or
not. If that boolean is set to kFalse, text will be exported using Package For GoLive's format
with the help of IXMLFragment.
Q: Can I suppress the progress bar when I process my own kPackageDocForWebCmdBoss?
A: The kPackageDocForWebCmdBoss aggregates an IUIFlagData that you can use to suppress
UI.
Q: How can I specify the browser to view toc.html after my kPackageDocForWebCmdBoss is
processed?
#10084 Package For GoLive
25
#10084 Package For GoLive
Summary
A: The IStringData (IID_ILAUNCHVIEWERDATA) in the kPackageDocForWebCmdBoss
holds the URL of browser application to view the TOC. Before your process your
kPackageDocForWebCmdBoss, set up this IStringData so it contains a valid URL to your
application.(See the SnpExportXML::SetXMLExportSesssionOptions() in SnpExportXML.cpp
for ways to obtain the default XML browser for your system.)
Q: If I create my own customized page item, what do I need to do so that Package For GoLive will
package it as part of the document?
A: Make your page item scritable, as explained in the "Making Your Plug-in Scriptable"
(scriptableplugin.pdf) technote. Also, make sure IXMLFragment and IDOMElement are
aggregated on the page item boss.
Summary
From the top level, Package For GoLive adds kPackageDocForWebCmdBoss and
kPackageBookForWebCmdBoss to the pool of API commands. And it offers GoLive users an
easy way to repurpose InDesign assets in GoLive. In fact, the output package actually represents
a complete InDesign publication, so anyone with a text editor can actually open the XML files
and "read" the content. This may represent a great opportunity for 3rd party developers.
Therefore, a great deal of this document is devoted to helping a 3rd party developer understand
how to read the output XML and how the feature is implemented. Readers who are interested
in learning more about this topic should also take a look at the "Making Your Plug-in
Scriptable" (scriptableplugin.pdf) technote and other XML related material in the SDK.
Appendix A
PDF Export Settings used in Package For GoLive
General
Pages: All
Spreads: Off
Compatibility: Acrobat 5 (PDF 1.4)
Generate Thumbnails: Off
Optimize PDF: Off
View PDF after Exporting: Off
Include eBook Tags: On
Include Hyperlinks: On
Include Bookmarks: On
Export Nonprinting Objects: Off
Create Acrobat Layers: Off
Export Visible Guides and Baseline Grids: Off
Include Interactive Elements: On
26
#10084 Package For GoLive
Appendix A
Standards Compliance: None
Multimedia: Link All
Compression
Color Images
Bicubic Downsample at: 300 DPI
for images above: 225 DPI
Compression: Automatic
Quality: High
Grayscale Images
Bicubic Downsample at: 300 DPI
for images above: 225 DPI
Compression: Automatic
Quality: High
Monochrome Images
Bicubic Downsample at: 1200 DPI
for images above: 450 DPI
Compression: CCITT Group 4
Compress Text and Line Art: On
Crop Image Data to Frames: On
Marks & Bleeds
Crop Marks: Off
Bleed Marks: Off
Registration Marks: Off
Color Bars: Off
Page Information: Off
Weight: 0.25 pt
Offset: 0p6
Bleed Top: 0p0
Bleed Bottom: 0p0
Bleed Left: 0p0
Bleed Right: 0p0
Page Mark Type: Default
Use Document Bleed Settings: Off
Include Slug Area: Off
Advanced
Color: RGB
Destination Profile: N/A
Include ICC Profiles: Off
Simulate Overprint: N/A
PDF/X Profile: N/A
Subset Fonts Below: 100%
Omit PDF: Off
Omit EPS: Off
Omit Bitmap Images: Off
Transparency Flattener Preset: N/A
Ignore Spread Overrides: N/A
Output Condition: Custom
#10084 Package For GoLive
27
#10084 Package For GoLive
Appendix B
Registry: None
Security
Encryption Level: Low (40-bit RC4) - Compatible with
Acrobat 3 and Later
Document Open Password: No
Permissions Password: No
Printing Allowed: High Resolution
Changes Allowed: Commenting, filling in form fields, and
signing
Enable copying of text, images and other content: On
Enable text access of screen reader devices for the
visually impaired: On
Enable plaintext metadata: On
Appendix B
Partial Package For GoLive layout.xml file format.
Note: Different elements can share the same attribute, mainly because they are probably based
on the same element. For example, the elements EPS and Image both are based on graphic
object, which has ItemGeometry attribute. In the Image section, it is explained in details how
the attribute is obtained, and the EPS section simply refer to Image section for details. This is
mainly to avoid massive amount of duplicate content. However, one should realize the
IGeometry mentioned in the Image (kImageItem) element section may or may not have a
different implementation from the one for the EPS (kEPSItem). However, because both
elements use the same script info service provider to report the attribute, the output format
and type are the same across these 2 elements.
aid:ClippingPathSettings
Description
The element aid:ClippingPathSettings represents the clipping path setting associated with an
image/pdf item. User usually sets the clipping path via the PhotoShop's Path palette, or the
"Clipping Path" menu item from the Object menu of InDesign. The interface IClipSettings is
responsible for managing the setting, it is added onto the kWorkspaceBoss,
kDocWorkspaceBoss, kImageBaseItem, kDisplayListPageItemBoss, and kPlacedPDFItemBoss.
Therefore the user can override this setting in different levels.
IClippingPathSuite is usually used to get/set the clipping path settings to the current selection.
If you are placing an image item, kSetClipValuesCmdBoss is used to set the setting; the
command's data interface, ISetClipValuesCmdData, is used to set the data. The command will
28
#10084 Package For GoLive
aid:ClippingPathSettings
try to set the IClipSettings on the image item if it exists or the one on the
kDocWorkspaceBoss/kWorkspaceBoss if it does not exist.
Example
<aid:ClippingPathSettings aid:ClippingType="e_dteg"
aid:InvertPath="b_f" aid:IncludeInsideEdges="b_f"
aid:RestrictToFrame="b_f" aid:UseHighResolutionImage="b_t"
aid:Threshold="l_67" aid:Tolerance="d_3fb9dbcc~48676f31"
aid:InsetFrame="d_0~0" aid:PhotoshopPathNames="x_0"
aid:AlphaChannelPathNames="x_0" aid:AppliedPathName="c_"
aid:Self="rc_u180.ClippingPathSettings[1]"/>
Attributes
TABLE 1.9 Attributes of aid:ClippingPathSettings
Attribute name
SummaryDefault
AlphaChannelPathNames
list of path names of alpha channel path names
required
AppliedPathName
the name of current clipping path applied
required
ClippingType
The clipping path type
required
IncludeInsideEdges
Whether include inside edges
required
InsetFrame
The inset width of the frame
required
InvertPath
Whether invert clipping path
required
PhotoshopPathNames
list of path names of photoshop path
required
RestrictToFrame
Whether to restrict to fr
required
Self
This object's UID
required
Threshold
Threshold for detect edges or alpha channel
required
Tolerance
Tolerance
required
UseHighResolutionImage
Whether to use high resolution image
required
AlphaChannelPathNames
This represents a list of the path names (in string type) of alpha channels associated with an
imported graphic. There is no direct way to get the alpha channel path name associated with an
image file. ImageUtils::ITGGetChannelNames is used to collect some channel names based on
the kImageItem's IImageAttributes. if it fails to collect the channel name, the IImageAttributes
on the kImageItem boss has a method GetTag(), which will return tag data given a tag name.
For example, for raster image, if IImageAttributes::kPMTagPhotoshop8BIM is passed into the
GetTag, it will return the resource data associated with the PhotoShop image resource, this
#10084 Package For GoLive
29
#10084 Package For GoLive
aid:ClippingPathSettings
image resource data then can be passed into the inline method GetPSResource() from the
ConvertPSResourcesToPMTags.h. to get the path name(s).
AppliedPathName
This represents the name of the currently-applied clipping path in string type. IClipSettings
has 2 methods named GetAlphaIndex() and GetEmbeddedPathIndex(), which will return the
index of the clipping path in use, depends on the clip type of the image (either kClipAlpha or
kClipEmbeddedPath, see the enum IClipSettings::ClipType), the index then is used to access
the name stored either in AlphaChannelPathNames or PhotoshopPathNames
ClippingType
This represents the clipping path type. IClipSettings::GetClipType() is used to get this setting.
See the enum IClipSettings::ClipType for the available types. The following table shows the
possible values for this attribute.
TABLE 1.10 Clipping Type Enum
if the ClipType as defined in IClip- it is output as the following enum
Settings.h is
in XML
IClipSettings::kClipNone
none
IClipSettings::kClipEdgeDetection
dteg
IClipSettings::kClipAlpha
aphc
IClipSettings::kClipEmbeddedPath
pspt
IClipSettings::kClipUserPath
umpt
IncludeInsideEdges
This represents a boolean. If true, include inside edges of the clipping path.
IClipSettings::GetAllowHoles() is used to get this setting.
InsetFrame
This represents the inset width of the frame. IClipSettings::GetInset() is used to get this setting
in PMReal. The value is converted into a 64-bit double before output in the XML.
InvertPath
This represents a boolean. If true, invert the path of the clipping path.
IClipSettings::GetInvert() is used to get this setting.
PhotoshopPathNames
This represents a list of path names of a Photoshop path (in string type). The name is obtained
using the PhotoShopResource as described above.
RestrictToFrame
This represents a boolean. If true, restrict the imported graphic to its frame.
IClipSettings::GetRestrictToFrame() is used to get this setting.
30
#10084 Package For GoLive
aid:ContourOption
Self
This represents the UID of this object itself.
Threshold
This represents the threshold for detect edges or alpha channel. IClipSettings::GetThreshold()
is used to get this setting. The threshold is output as a 32-bit integer in the XML.
Tolerance
This represents the accuracy when generating a clipping path. Higher values produce a clipping
path that's closer to the shape of the objects in the imported graphic, but tend to be more
jagged. Lower values produce smoother clipping paths, but tend to be less accurate.
IClipSettings::GetTolerance() is used to get this setting in PMReal. The value is converted into
a 64-bit double before output in the XML.
UseHighResolutionImage
This represents a boolean. If true, use a high resolution version of the imported graphic when
creating a clipping path. IClipSettings::GetUseHighRes() is used to get this setting.
aid:ContourOption
Description
The element aid:ContourOption represents settings for the contour text wrap feature that can
be set via the Text Wrap panel. The interface IStandOffContourWrapSettings (default IID
IID_ICONTOURWRAPSETTINGS) is responsible for managing the setting, it is added onto
the kWorkspaceBoss, kDocWorkspaceBoss, kImageBaseItem, kDisplayListPageItemBoss, and
kPlacedPDFItemBoss.
Usually, the text wrap option is set through the ITextWrapFacade via the method
SetContourWrapSettings(). See ITextWrapFacade.h for details on how to use the interface.
Internally, ITextWrapFacade::SetContourWrapSettings() uses kSetContourWrapCmdBoss to
change the setting on the appropriate boss. If the command's item list is nil, the command will
try to set the IStandOffContourWrapSettings on the kWorkspaceBoss or kDocWorkspaceBoss.
Otherwise the IStandOffContourWrapSettings of item in the item list will be affected.
Attributes
TABLE 1.11 Attributes of aid:ContourOption
Attribute name
SummaryDefault
AlphaChannelPathNames
list of path names of alpha channel path names
required
ContourPathName
the name of current contour options applied
required
ContourType
The contour options type
required
#10084 Package For GoLive
31
#10084 Package For GoLive
aid:ContourOption
Attribute name
SummaryDefault
IncludeInsideEdges
Whether include inside edges
required
PhotoshopPathNames
list of path names of photoshop path
required
Self
This object's UID
required
AlphaChannelPathNames
This represents a list of the alpha channel path names (in string type) in an imported graphic.
The path name is obtained in a similar technique as described in the aid::ClippingPathSettings
section
ContourPathName
This represents the name of the current contour option (in string type) applied to an imported
graphic. ITextWrapFacade::GetContourWrapSettings() is used to get the current contour wrap
setting, then depends on the current contour type from the return setting, if it is
IStandOffContourWrapSettings::kAlpha, the alpha index (named alphaIndexPtr in
ITextWrapFacade.h) from the returned setting is used to access the name in
AlphaChannelPathNames, or if the contour type is
IStandOffContourWrapSettings::kEmbeddedPath, then the path index (named pathIndexPtr
in ITextWrapFacade.h) from the returned setting is used to access the name in the
PhotoshopPathNames.
ContourType
This represents the contour options type applied to an imported graphic.
ITextWrapFacade::GetContourWrapSettings() is used to get the current contour wrap setting,
the contour type (named contourTypePtr in ITextWrapFacade.h) is part of the parameters that
will be returned. See the enum IStandOffContourWrapSettings::ContourWrapType for a list of
available contour types. The following table shows the possible values for this attribute.
TABLE 1.12 Contour Type Enum
if the ContourWrapType as de- it is output as the following enum
fined in IStandOffContourWrap- in XML
Settings.h is
32
IStandOffContourWrapSettings::kGraphi
cBounds
enbb
IStandOffContourWrapSettings::kEdgeD
etection
dteg
IStandOffContourWrapSettings::kAlpha
aphc
IStandOffContourWrapSettings::kEmbed
dedPath
pspt
IStandOffContourWrapSettings::kGraphi
cFrame
engf
#10084 Package For GoLive
aid:EPS
if the ContourWrapType as de- it is output as the following enum
fined in IStandOffContourWrap- in XML
Settings.h is
IStandOffContourWrapSettings::kSameA
sClip
sacp
IncludeInsideEdges
This represents a boolean. If true, include the inside edges of a contour path.
ITextWrapFacade::GetContourWrapSettings() is used to get the current contour wrap setting,
the last parameter (named allowHolesPtr in ITextWrapFacade.h) of the parameters that will be
returned corresponds to this setting.
PhotoshopPathNames
This represents a list of the photoshop path names (in string type) in an imported graphic. The
path name is obtained in a similar technique as described in the aid::ClippingPathSettings
section
Self
This represents the UID of this object itself.
aid:EPS
Description
The element aid:EPS represents a EPS page item, which corresponds to the kEPSItem boss
class. The EPS element and the Image element share many same attributes. They follow exactly
the same format as explained in the Image element. And all the attributes are obtained the
same way too.
Attributes
TABLE 1.13 Attributes of aid:EPS
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ClippingPath
The clipping path settingsThe clipping path settings
required
FeatherCornerType
The type of feathering to applyThe type of feathering to
apply
required
FeatherMode
The feather modeThe feather mode
required
#10084 Package For GoLive
33
#10084 Package For GoLive
aid:EPS
Attribute name
SummaryDefault
FeatherWidth
The width of the feathering
Id
The object's unique id
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
Opacity
The opacity of the object
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
TextWrapPreferences
The text wrap preferences
required
AssociatedXMLElement
See AssociatedXMLElement under element Image for more details.
BlendMode
See BlendMode under element Image for more details.
ClippingPath
See ClippingPath under element Image for more details.
FeatherCornerType
See FeatherCornerType under element Image for more details.
FeatherMode
See FeatherMode under element Image for more details.
FeatherWidth
See FeatherWidth under element Image for more details.
34
required
#10084 Package For GoLive
aid:EPS
Id
See Id under element Image for more details.
IsolateBlending
See IsolateBlending under element Image for more details.
ItemGeometry
See ItemGeometry under element Image for more details.
KnockoutGroup
See KnockoutGroup under element Image for more details.
Label
See Label under element Image for more details.
LocalDisplaySetting
See LocalDisplaySetting under element Image for more details.
Opacity
See Opacity under element Image for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element Image for more details.
ShadowBlurRadius
See ShadowBlurRadius under element Image for more details.
ShadowColor
See ShadowColor under element Image for more details.
ShadowMode
See ShadowMode under element Image for more details.
ShadowOpacity
See ShadowOpacity under element Image for more details.
ShadowXOffset
See ShadowXOffset under element Image for more details.
ShadowYOffset
See ShadowXOffset under element Image for more details.
TextWrapPreferences
See TextWrapPreferences under element Image for more details.
#10084 Package For GoLive
35
#10084 Package For GoLive
aid:FlattenerPreference
aid:FlattenerPreference
Description
The element aid:FlattenerPreference represents the setting associated with the flattener.
Flattener is Adobe's technology for turning transparent objects into a form suitable for older
RIPs. Note that the flattener can be applied to either the whole document or specific page
spreads. The FlattenerPreference here is specific to the spreads, i.e. this is a local override. User
can apply the local flattener style by selecting from among the choices in the Spread Flattening
menu in the Page palette menu. The FlattenerPreference is represented by the
IFlattenerSettings (IID_IXPFLATTENERSETTINGS) aggregated on the kSpreadBoss. There is
also a command, kXPFlattenerSettingsSetCmdBoss that can be used to set the spread's
IFlattenerSettings.
Attributes
TABLE 1.14 Attributes of aid:FlattenerPreference
Attribute name
SummaryDefault
ClipComplexRegions
Clip rasterized areas of the page to the objects which are
actually rasterized
required
ConvertStrokesToFills
Convert all strokes to fills, not just those involved with
transparency
required
FlattenerResolution
Resolution of transparency effects (drop shadows and
feathering
required
GradientResolution
Resolution at which gradients are rasterized, when
necessary
required
Level
Level of flattening
required
Self
This object's UID
required
TextToOutlines
Convert all text to outlines, not just the text involved
with transparency
required
ClipComplexRegions
This represents a boolean. If true, clip rasterized areas of the page to the objects which are
actually rasterized. There are 8 options associated with the Flattener, and a 32-bits integer is
used to stored the flags. For the normal flattener style, only 3 of the options are presented in the
UI, which are represented in this attributes list as ClipComplexRegions, ConvertStrokesToFills,
and TextToOutlines. The following snippet shows how to get the ClipComplexRegions setting.
// assuming iFlattenerSettings is a InterfacePtr of
IFlattenerSettings
int32 flattenerFlags = iFlattenerSettings-
36
#10084 Package For GoLive
aid:FlattenerPreference
>GetFlattenerFlags();
boolean bClipComplexRegions = (flattenerFlags &
IFlattenerSettings::kFlOptkClipComplexRegions) != 0;
Please see IFlattenerSettings.h for the options defined for the flattener.
ConvertStrokesToFills
This represents a boolean. If true, convert all strokes to fills, not just those involved with
transparency. The snippet in ClipComplexRegions attribute can be used to obtain the value of
ConvertStrokesToFills. All you have to do is replace the
IFlattenerSettings::kFlOptkClipComplexRegions with
IFlattenerSettings::kFlOptkConvertStrokeToFill
FlattenerResolution
This represents the resolution of transparency effects (including drop shadows and feathering).
This setting can be obtained via the method IFlattenerSettings::GetFlattenerExternalDPI().
The resolution is returned in PMReal and then is converted into a 64-bit double for output in
XML.
GradientResolution
This represents resolution at which gradients are rasterized, when necessary. This setting can
be obtained via the method IFlattenerSettings::GetFlattenerInternalDPI. The resolution is
returned in PMReal and then is converted into a 64-bit double for output in XML.
Level
This represents the flattener level to use. The value can be obtained via,
IFlattenerSettings::GetNewFlattenerLevel() method, which returns a value in PMReal that's
between 0 and 100. The value then is converted into a 64-bit double before output in XML.
Note: There is also an old method named GetFlattenerLevel() and the available levels are
defined in the enum IFlattenerSettings::FlattenerLevel.
Self
This represents the UID of this object itself.
TextToOutlines
This represents a boolean. If true, convert all text to outlines, not just the text involved with
transparency. The snippet in ClipComplexRegions attribute can be used to obtain the value of
ConvertStrokesToFills. All one has to do is replace the
IFlattenerSettings::kFlOptkClipComplexRegions with
IFlattenerSettings::kFlOptUseTextOutlines
#10084 Package For GoLive
37
#10084 Package For GoLive
aid:GraphicLine
aid:GraphicLine
Description
The element aid:GraphicLine represents a graphic line page item. It can be created using the
Line tool (kLineToolBoss) from the Tools Palette. Or, IPathUtils::CreateLineSpline() can be
used to create a graphic line programmatically. Internally, a graphic line is represented by a
kSplineItemBoss.
Example
<aid:GraphicLine aid:ContentType="e_unas"
aid:AssociatedXMLElement="ro_n" aid:BlendMode="e_norm"
aid:Opacity="d_40590000~0" aid:KnockoutGroup="b_f"
aid:IsolateBlending="b_f" aid:ShadowMode="e_none"
aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_u95.TextWrapPreference[1]"
aid:OverriddenPageItemProps="x_0"
aid:OverriddenMasterPageItem="o_n"
aid:ItemGeometry="x_13_l_1_l_2_l_2_d_4054f62f~8291f2bd_d_c0
7911a3~468ce5b8_l_2_d_4054b527~2ac8c2ad_d_40508306~c19025b_
b_t_d_4054b527~2ac8c2ad_d_c07911a3~468ce5b8_d_4054f62f~8291
f2bd_d_40508306~c19025b_d_3c91a600~0_d_bff00000~0_d_3ff0000
0~0_d_3c91a600~0_d_407c9cb9~72e5971b_d_c0640dc9~e92bd63a"
aid:LocalDisplaySetting="e_Dflt" aid:FillColor="o_u94"
aid:FillTint="d_bff00000~0" aid:OverprintFill="b_f"
aid:StrokeWeight="u_40340000~0"
aid:MiterLimit="d_40100000~0" aid:EndCap="e_bcap"
aid:EndJoin="e_mjon" aid:StrokeType="e_swvy"
aid:LeftLineEnd="e_barb" aid:RightLineEnd="e_barb"
aid:StrokeColor="o_u8" aid:StrokeTint="d_bff00000~0"
aid:CornerEffect="e_none" aid:CornerRadius="d_40280000~0"
aid:GradientFillStart="x_2_u_407c9cb9~72e5971b_u_40704839~4
7e2d24a" aid:GradientFillLength="u_0~0"
aid:GradientFillAngle="d_0~0"
aid:GradientStrokeStart="x_2_u_407c9cb9~72e5971b_u_40704839
~47e2d24a" aid:GradientStrokeLength="u_0~0"
aid:GradientStrokeAngle="d_0~0" aid:OverprintStroke="b_f"
aid:ItemLayer="o_u77" aid:Nonprinting="b_f"
aid:GapColor="o_u11" aid:GapTint="d_bff00000~0"
38
#10084 Package For GoLive
aid:GraphicLine
aid:StrokeAlignment="e_stAC" aid:Locked="b_f"
aid:Label="c_" aid:Self="rc_u95">
Attributes
TABLE 1.15 Attributes of aid:GraphicLine
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ContentType
The type of content
required
CornerEffect
The type of corner effect on the object
required
CornerRadius
The radius of the corner
required
EndCap
The appearance of both ends of an open path
required
EndJoin
The appearance of the stroke at corner points
required
FeatherCornerType
The type of feathering to applyThe type of feathering to
apply
required
FeatherMode
The feather modeThe feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
required
FillTint
The local override of the fill's tint percentage (-1
indicates no override)
required
GapColor
Gap color for the page item
GapTint
Gap tint for the page item
required
GradientFillAngle
Angle of a linear gradient on the fill
required
GradientFillLength
Length of ramp for a linear gradient or radius of a radial
gradient on the fill
required
GradientFillStart
Center point for a radial gradient or starting point for a
linear gradient on the fill
required
GradientStrokeAngle
Angle of a linear gradient on the stroke
required
GradientStrokeLength
Length of ramp for a linear gradient or radius of a radial
gradient on the stroke
required
GradientStrokeStart
Center point for a radial gradient or starting point for a
linear gradient on the stroke
required
#10084 Package For GoLive
39
#10084 Package For GoLive
aid:GraphicLine
40
Attribute name
SummaryDefault
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LeftLineEnd
A shape, such as an arrowhead, on the left end of an
open path.
required
LocalDisplaySetting
The display settings for this page item
required
Locked
Whether the item is locked
required
MiterLimit
When a corner point switches from a mitered (pointed)
join to a beveled (squared-off) join
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
OverprintFill
Whether to overprint the fill
required
OverprintStroke
Whether to overprint the stroke
required
OverriddenMasterPageIte
m
The overridden master page item
required
OverriddenPageItemProp
s
The overridden properties on the page item
required
RightLineEnd
A shape, such as an arrowhead, on the right end of an
open path
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
StrokeAlignment
The stroke alignment for the page item
required
StrokeColor
The stroke color
required
#10084 Package For GoLive
aid:GraphicLine
Attribute name
SummaryDefault
StrokeTint
The override of the stroke's tint percentage (-1 indicates
no override)
required
StrokeType
The stroke type
required
StrokeWeight
The weight (in points) to apply to the stroke of the line
required
TextWrapPreferences
The text wrap preferences
required
AssociatedXMLElement
See AssociatedXMLElement under Image element for more details.
BlendMode
See BlendMode under Image element for more details.
ContentType
This represents the type of content. The IGraphicFrameData on the kSplineItemBoss is used to
check if the page item has any content in it. If yes, it will further check to see if the content is
text or graphic. The following table shows the possible values for this attribute.
TABLE 1.16 Content Type Enum
if the content is
it is output as the following enum
in XML
No content
unas
Text
t_te
Graphic
grpt
CornerEffect
This represents the corner effect applied to the page item. This property corresponds to the
Effect pop-up menu in the Corner Effects dialog box.The attribute is represented internally by
kGraphicStyleCornerImplAttrBoss. IGraphicAttributeUtils::GetCornerImplementation() is
used to get the UID of the corner effect implementation boss from the page item, then an
enum is assigned for each unique implementation and output in the XML. The following table
shows the possible values for this attribute.
TABLE 1.17 Corner Effect Enum
If the corner effect implementation it is output as the following enum
boss is (as is returned by the IG- in XML
raphicAttributeUtils::GetCornerImplementation())
kRoundedCornerBoss
#10084 Package For GoLive
cerd
41
#10084 Package For GoLive
aid:GraphicLine
If the corner effect implementation it is output as the following enum
boss is (as is returned by the IG- in XML
raphicAttributeUtils::GetCornerImplementation())
kInverseRoundedCornerBoss
cenv
kInsetCornerBoss
cens
kBevelCornerBoss
cebv
kFancyCornerBoss
cefn
No corner effect
none
CornerRadius
This represents the radius of the corner effect applied to the page item. This property
corresponds to the Size field in the Corner Effects dialog box. The attribute is represented
internally by kGraphicStyleCornerRadiusAttrBoss.
IGraphicAttributeUtils::GetCornerRadius() is used to get the PMReal value from the page
item, the value is then output as a 64-bit double in the XML. The valid data range for this
attribute is [0, 800].
EndCap
This represents the appearance of the end points of an open path. This property corresponds to
the End Cap options in the Stroke palette. The attribute is represented internally by
kGraphicStyleLineCapAttrBoss. IGraphicAttributeUtils::GetLineCap() is used to get the int32
value from the page item, the value is then output as an enum in the XML. The following table
shows the possible values for this attribute.
TABLE 1.18 Cap Option Enum
if the cap option is
it is output as the following enum
in XML
Butt Cap (0 returned by GetLineCap())
bcap
Round Cap (1 returned by GetLineCap())
rcap
Projecting Cap (2 returned by
GetLineCap())
pjcp
EndJoin
This represents the appearance of the stroke at corner points. This property corresponds to the
End Join options in the Stroke palette. This property has no effect on smooth (or "curve")
points on a path. The attribute is represented internally by kGraphicStyleJoinTypeAttrBoss.
IGraphicAttributeUtils::GetJoinType() is used to get the int32 value from the page item, the
value is then output as an enum in the XML. The following table shows the possible values for
this attribute.
42
#10084 Package For GoLive
aid:GraphicLine
TABLE 1.19 Join Option Enum
if the join option is
it is output as the following enum
in XML
Miter join (0 returned by GetJoinType())
mjon
Round join (1 returned by GetJoinType())
rjon
Beveled join (2 returned by
GetJoinType())
bjon
FeatherCornerType
See FeatherCornerType under Image element for more details.
FeatherMode
See FeatherMode under Image element for more details.
FeatherWidth
See FeatherWidth under Image element for more details.
FillColor
See FillColor under Image element for more details.
FillTint
See FillTint under Image element for more details.
GapColor
This represents The swatch, color, tint, gradient, or mixed ink applied to the gap of the stroke
of the page item. It is represented by the kGraphicStyleGapRenderingAttrBoss.
IGraphicAttributeUtils::QueryGapRenderingObject is used to get the IRenderingObject
object.
GapTint
This represents the tint percentage applied to the gap of the stroke of the page item (-1
indicates 100%, or no override). The attribute is represented internally by
kGraphicStyleGapTintAttrBoss. IGraphicAttributeUtils::GetGapTint() is used to get the
PMReal value from the page item, the value is then output as a 64-bit double in the XML. The
valid data range for this attribute is [0, 100].
GradientFillAngle
This represents the angle of a linear gradient applied to the fill of the page item. The attribute is
represented internally by kGraphicStyleGradientFillAngleAttrBoss.
IGraphicAttributeUtils::GetGradientFillAngle() is used to get the PMReal value from the page
item, and the value is output as a 64-bit double in the XML. The valid data range for this
attribute is [-360, 360].
#10084 Package For GoLive
43
#10084 Package For GoLive
aid:GraphicLine
GradientFillLength
This represents the length of the ramp of a linear gradient (or the diameter of the ramp of a
radial gradient) applied to the fill of the page item. The attribute is represented internally by
kGraphicStyleGradientFillLengthAttrBoss. IGraphicAttributeUtils::GetGradientFillLength() is
used to get the PMReal value from the page item, and the value is converted into a
ScriptData::kPoints and is output as a 64-bit unit in the XML. The valid data range for this
attribute is [0, 103680]. Please see ScriptData.h for more information on how the unit is
converted for output.
GradientFillStart
This represents the starting point of the gradient applied to the fill of the page item (in page
coordinates). For linear gradients, this property contains the location of one end of the
gradient; for radial gradients, this property contains the center point of the gradient. The
attribute is represented internally by kGraphicStyleGradientFillGradCenterAttrBoss.
IGraphicAttributeUtils::GetGradientFillGradCenter () is used to get the PMPoint value from
the page item, the x value is converted into a ScriptData::kXCoordinate Unit and y value is
converted into a ScriptData::kYCoordinate Unit and both are output in X-Y order as 2 64-bit
unit list in the XML. Please see ScriptData.h for more information on how the unit is converted
for output.
GradientStrokeAngle
This represents the angle of a linear gradient applied to the fill of the page item. The attribute is
represented internally by kGraphicStyleGradientStrokeAngleAttrBoss.
IGraphicAttributeUtils::GetGradientStrokeAngle() is used to get the PMReal value from the
page item, and the value is output as a 64-bit double in the XML. The valid data range for this
attribute is [-360, 360].
GradientStrokeLength
This represents the length of the ramp of a linear gradient (or the diameter of the ramp of a
radial gradient) applied to the stroke of the page item.. The attribute is represented internally
by kGraphicStyleGradientStrokeLengthAttrBoss.
IGraphicAttributeUtils::GetGradientStrokeLength() is used to get the PMReal value from the
page item, and the value is converted into a ScriptData::kPoints and is output as a 64-bit unit in
the XML. The valid data range for this attribute is [0, 103680]. Please see ScriptData.h for more
information on how the unit is converted for output.
GradientStrokeStart
This represents the starting point of the gradient applied to the stroke of the page item (in page
coordinates). For linear gradients, this property contains the location of one end of the
gradient; for radial gradients, this property contains the center point of the gradient. The
attribute is represented internally by kGraphicStyleGradientStrokeGradCenterAttrBoss.
IGraphicAttributeUtils::GetGradientStrokeGradCenter() is used to get the PMPoint value
from the page item, the x value is converted into a ScriptData::kXCoordinate Unit and y value
is converted into a ScriptData::kYCoordinate Unit and both are output in X-Y order as 2 64-bit
unit list in the XML. Please see ScriptData.h for more information on how the unit is converted
for output.
44
#10084 Package For GoLive
aid:GraphicLine
IsolateBlending
See IsolateBlending under Image element for more details.
ItemGeometry
See ItemGeometry under Image element for more details.
ItemLayer
This represents the layer containing the page item.
KnockoutGroup
See KnockoutGroup under Image element for more details.
Label
This represents a property that can be set to any string (up to 32Kb of text). Recall that all the
InDesign's XML output relies on the scriptable object to describe itself. IScript interface on a
scritable object allows user to set its own tag property through the IScript::SetTag() method.
The value for the Label attribute is obtained via the IScript::GetTag() method.
LeftLineEnd
This represents a shape, such as an arrowhead, on the first (or "left) point of an open path. The
attribute is represented internally by kGraphicStyleLineEndStartAttrBoss.
IGraphicAttributeUtils::GetLineEndStartImplementation() is used to get the UID of the left
line end implementation boss from the page item, then an enum is assigned for each unique
implementation and output in the XML. The following table shows the possible values for this
attribute.
TABLE 1.20 Line End Enum
If the line end implementation boss it is output as the following enum
is (as is returned by the IGraphi- in XML
cAttributeUtils::GetLineEndStartImplementation())
kSimpleArrowHeadBoss
simp
kSimpleWideArrowHeadBoss
swah
kTriangleArrowHeadBoss
trin
kTriangleWideArrowHeadBoss
twah
kBarbedArrowHeadBoss
barb
kCurvedArrowHeadBoss
cvah
kCircleArrowHeadBoss
crah
kCircleSolidArrowHeadBoss
csah
kSquareArrowHeadBoss
sqah
#10084 Package For GoLive
45
#10084 Package For GoLive
aid:GraphicLine
If the line end implementation boss it is output as the following enum
is (as is returned by the IGraphi- in XML
cAttributeUtils::GetLineEndStartImplementation())
kSquareSolidArrowHeadBoss
ssah
kBarArrowHeadBoss
brah
default
none
LocalDisplaySetting
See LocalDisplaySetting under Image element for more details.
Locked
This represents a boolean. If true, the page item is locked. The attribute is managed by
ILockPosition interface aggregated on all kDrawablePageItemBoss. ILockPosition ::IsLocked()
is used to get the boolean value from the page item.
MiterLimit
This defines the point at which a corner point switches from a mitered (pointed) join to a
beveled (squared-off) join. If the width of the stroke at a corner point would be wider than this
value times the stroke weight, InDesign applies a beveled join to the corner. The attribute is
represented internally by kGraphicStyleMiterLimitAttrBoss.
IGraphicAttributeUtils::GetMiterLimit() is used to get the PMReal value from the page item,
the value is then output as a 64-bit double in the XML. The valid data range for this attribute is
[1, 500].
Nonprinting
This represents a boolean. If true, the page item is non-printing. The attribute is represented
internally by kGraphicStyleNonPrintAttrBoss. IGraphicAttributeUtils::GetNonPrint() is used
to get the boolean value from the page item.
Opacity
See Opacity under Image element for more details.
OverprintFill
See OverprintFill under Image element for more details.
OverprintStroke
This represents a boolean. If true, overprint the stroke of the page item. The attribute is
represented internally by kGraphicStyleOverprintStrokeAttrBoss.
IGraphicAttributeUtils::GetOverprintStroke() is used to get the boolean value from the page
item.
46
#10084 Package For GoLive
aid:GraphicLine
OverriddenMasterPageItem
This represents a reference to the master page item linked to the page item (if any). The
IControllingPageItem aggregated on all kDrawablePageItemBoss maintain the UID of the
master page item.
OverriddenPageItemProps
This represents a list of the properties of the page item which differ from the properties of the
linked master page item (if any). See OverriddenMasterPageItem above for more details. The
IControllingPageItem::GetNonForwardedIIDs() returns a list of all non forwarded interface
ids, which is reported as this attribute's value.
RightLineEnd
This represents a shape, such as an arrowhead, on the last ("right") point of an open path. The
attribute is represented internally by kGraphicStyleLineEndEndAttrBoss.
IGraphicAttributeUtils::GetLineEndEndImplementation() is used to get the UID of the right
line end implementation boss from the page item, then an enum is assigned for each unique
implementation and output in the XML. The table in LeftLineEnd attribute shows the possible
values for this attribute.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under Image element for more details.
ShadowBlurRadius
See ShadowBlurRadius under Image element for more details.
ShadowColor
See ShadowColor under Image element for more details.
ShadowMode
See ShadowMode under Image element for more details.
ShadowOpacity
See ShadowOpacity under Image element for more details.
ShadowXOffset
See ShadowXOffset under Image element for more details.
ShadowYOffset
See ShadowYOffset under Image element for more details.
StrokeAlignment
This property controls the way that the stroke of a path is drawn relative to the path, and
corresponds to the Stroke Alignment options in the Stroke palette.The attribute is represented
internally by kGraphicStyleStrokeAlignmentAttrBoss.
#10084 Package For GoLive
47
#10084 Package For GoLive
aid:GraphicLine
IGraphicAttributeUtils::GetStrokeAlignment() is used to get the int32 value from the page
item, the value should be one of the enum PMStrokeAlignment as defined in the
GraphicTypes.h which is output as an enum in the XML. The following table shows the
possible values for this attribute.
TABLE 1.21 PMStroleAlignment Enum
PMStrokeAlignment as defined in it is output as the following enum
GraphicTypes.h
in XML
kStrokeAlignCenter
stAC
kStrokeAlignInside
stAI
kStrokeAlignOutside
stAO
StrokeColor
This represents the color of the drop shadow applied to the page item. This property
corresponds to the Color pop-up menu in the Drop Shadow dialog box. It is represented by the
kGraphicStyleStrokeRenderingAttrBoss.
IGraphicAttributeUtils::QueryStrokeRenderingObject is used to get the IRenderingObject
object.
StrokeTint
This represents The tint percentage applied to the stroke of the page item (-1 indicates 100%,
or no override). The attribute is represented internally by kGraphicStyleStrokeTintAttrBoss.
IGraphicAttributeUtils::GetStrokeTint() is used to get the PMReal value from the page item,
the value is then output as a 64-bit double in the XML. The valid data range for this attribute is
[0, 100].
StrokeType
This represents the stroke type applied to the page item--either one of the default stroke types,
or the name of a custom stroke style. The attribute is represented internally by
kGraphicStyleStrokeLineImplAttrBoss. IGraphicAttributeUtils::GetLineImplementation() is
used to get the UID of the line implementation boss from the page item, then an enum is
assigned for each unique implementation and output in the XML. If the implementation is a
kCustomPathStrokerBoss, then IPathStrokerList::FindStroker() is used to find the custom
stroke index from the stroke list, QueryNthStroker() is used to get the IPathStroker pointer
based on the index, then finally, IPathStrokerUtils::GetPathStrokerName() is used to get the
name from the IPathStroker object. The following table shows the possible values for this
attribute.
48
#10084 Package For GoLive
aid:GraphicLine
TABLE 1.22 Line Implementation Enum
If the line implementation boss is it is output as the following enum
(as is returned by the IGraphicAt- in XML
tributeUtils::GetLineImplementation())
kThickThinThickPathStrokerBoss
Tknk
kThinThickThinPathStrokerBoss
Tnkn
kThickThickPathStrokerBoss
Thkk
kThickThinPathStrokerBoss
Thkn
kThinThickPathStrokerBoss
Thnk
kThinThinPathStrokerBoss
Thnn
kCannedDotPathStrokerBoss
Dott
kCannedDash3x2PathStrokerBoss
ds32
kCannedDash4x4PathStrokerBoss
ds44
kDashedPathStrokerBoss
dash
kSolidPathStrokerBoss
sold
kCustomPathStrokerBoss
The stroke name obtained through
IPathStrokerUtils::GetPathStrokerName()
kSingleWavyPathStrokerBoss
swvy
kStraightHashPathStrokerBoss
shsh
kRightSlantHashPathStrokerBoss
rshs
kLeftSlantHashPathStrokerBoss
lshs
kWhiteDiamondPathStrokerBoss
wtdm
StrokeWeight
This represents the weight (in points) of the stroke applied to the page item. The attribute is
represented internally by kGraphicStyleStrokeWeightAttrBoss.
IGraphicAttributeUtils::GetStrokeWeight() is used to get the PMReal value from the page item,
and the value is converted into a ScriptData::kPoints and is output as a 64-bit unit in the XML.
The valid data range for this attribute is [0, 800]. Please see ScriptData.h for more information
on how the unit is converted for output.
TextWrapPreferences
This represents the text wrap applied to the page item.
#10084 Package For GoLive
49
#10084 Package For GoLive
aid:Group
aid:Group
Description
The element aid:Group represents a grouping object. When objects are "grouped", InDesign
treats the objects as a single object. The objects in the group move and transform as a single
unit. User can can group the objects in a selection by pressing Command-G/Ctrl-G or
choosing Group from the Object menu. A group item is represented by the kGroupItemBoss,
which is derived from kDrawablePageItemBoss. kGroupCmdBoss and kUngroupCmdBoss can
be used to group/ungroup page items. The attributes of Group element are similar to the
GraphicLine element. They follow exactly the same format as explained in the GraphicLine
element. And all the attributes are obtained the same way too.
Example
<aid:Group aid:AssociatedXMLElement="ro_n"
aid:BlendMode="e_norm" aid:Opacity="d_40590000~0"
aid:KnockoutGroup="b_f" aid:IsolateBlending="b_f"
aid:ShadowMode="e_none" aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_uae.TextWrapPreference[1]"
aid:OverriddenPageItemProps="x_0"
aid:OverriddenMasterPageItem="o_n"
aid:ItemGeometry="x_b_l_0_d_4046bf2d~29dd0fa8_d_c071fca6~dd
075082_d_40719ab1~409f4355_d_40611432~9e04d4e8_d_3ff00000~0
_d_0~0_d_0~0_d_3ff00000~0_d_4052ed36~37de44f8_d_4036973a~9d
41d4f8" aid:LocalDisplaySetting="e_Dflt"
aid:FillTint="d_bff00000~0" aid:StrokeWeight="u_3ff00000~0"
aid:MiterLimit="d_40100000~0" aid:EndCap="e_bcap"
aid:EndJoin="e_mjon" aid:StrokeType="e_sold"
aid:LeftLineEnd="e_none" aid:RightLineEnd="e_none"
aid:StrokeColor="o_u11" aid:StrokeTint="d_bff00000~0"
aid:CornerEffect="e_none" aid:CornerRadius="d_40280000~0"
aid:GradientFillLength="u_0~0"
aid:GradientFillAngle="d_0~0"
aid:GradientStrokeLength="u_0~0"
aid:GradientStrokeAngle="d_0~0" aid:ItemLayer="o_u9c"
aid:Nonprinting="b_f" aid:GapTint="d_bff00000~0"
aid:StrokeAlignment="e_stAC" aid:Locked="b_f"
aid:Label="c_" aid:Self="rc_uae">
50
#10084 Package For GoLive
aid:Group
Attributes
TABLE 1.23 Attributes of aid:Group
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
CornerEffect
The type of corner effect on the object
required
CornerRadius
The radius of the corner
required
EndCap
The appearance of both ends of an open path
required
EndJoin
The appearance of the stroke at corner points
required
FeatherCornerType
The type of feathering to applyThe type of feathering to
apply
required
FeatherMode
The feather modeThe feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
FillTint
The local override of the fill's tint percentage (-1
indicates no override)
required
GapTint
Gap tint for the page item
required
GradientFillAngle
Angle of a linear gradient on the fill
required
GradientFillLength
Length of ramp for a linear gradient or radius of a radial
gradient on the fill
required
GradientStrokeAngle
Angle of a linear gradient on the stroke
required
GradientStrokeLength
Length of ramp for a linear gradient or radius of a radial
gradient on the stroke
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LeftLineEnd
A shape, such as an arrowhead, on the left end of an
open path.
required
LocalDisplaySetting
The display settings for this page item
required
#10084 Package For GoLive
51
#10084 Package For GoLive
aid:Group
Attribute name
SummaryDefault
Locked
Whether the item is locked
required
MiterLimit
When a corner point switches from a mitered (pointed)
join to a beveled (squared-off) join
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
OverriddenMasterPageIte
m
The overridden master page item
required
OverriddenPageItemProp
s
The overridden properties on the page item
required
RightLineEnd
A shape, such as an arrowhead, on the right end of an
open path
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
StrokeAlignment
The stroke alignment for the page item
required
StrokeColor
The stroke color
required
StrokeTint
The override of the stroke's tint percentage (-1 indicates
no override)
required
StrokeType
The stroke type
required
StrokeWeight
The weight (in points) to apply to the stroke of the line
required
TextWrapPreferences
The text wrap preferences
required
AssociatedXMLElement
See AssociatedXMLElement under element GraphicLine for more details.
BlendMode
See BlendMode under element GraphicLine for more details.
52
#10084 Package For GoLive
aid:Group
CornerEffect
See CornerEffect under element GraphicLine for more details.
CornerRadius
See CornerRadius under element GraphicLine for more details.
EndCap
See EndCap under element GraphicLine for more details.
EndJoin
See EndJoin under element GraphicLine for more details.
FeatherCornerType
See FeatherCornerType under element GraphicLine for more details.
FeatherMode
See FeatherMode under element GraphicLine for more details.
FeatherWidth
See FeatherWidth under element GraphicLine for more details.
FillColor
See FillColor under element GraphicLine for more details.
FillTint
See FillTint under element GraphicLine for more details.
GapTint
See GapTint under element GraphicLine for more details.
GradientFillAngle
See GradientFillAngle under element GraphicLine for more details.
GradientFillLength
See GradientFillLength under element GraphicLine for more details.
GradientStrokeAngle
See GradientStrokeAngle under element GraphicLine for more details.
GradientStrokeLength
See GradientStrokeLength under element GraphicLine for more details.
IsolateBlending
See IsolateBlending under element GraphicLine for more details.
ItemGeometry
See ItemGeometry under element GraphicLine for more details.
#10084 Package For GoLive
53
#10084 Package For GoLive
aid:Group
ItemLayer
See ItemLayer under element GraphicLine for more details.
KnockoutGroup
See KnockoutGroup under element GraphicLine for more details.
Label
See Label under element GraphicLine for more details.
LeftLineEnd
See LeftLineEnd under element GraphicLine for more details.
LocalDisplaySetting
See LocalDisplaySetting under element GraphicLine for more details.
Locked
See Locked under element GraphicLine for more details.
MiterLimit
See MiterLimit under element GraphicLine for more details.
Nonprinting
See Nonprinting under element GraphicLine for more details.
Opacity
See Opacity under element GraphicLine for more details.
OverriddenMasterPageItem
See OverriddenMasterPageItem under element GraphicLine for more details.
OverriddenPageItemProps
See OverriddenPageItemProps under element GraphicLine for more details.
RightLineEnd
See RightLineEnd under element GraphicLine for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element GraphicLine for more details.
ShadowBlurRadius
See ShadowBlurRadius under element GraphicLine for more details.
ShadowColor
See ShadowColor under element GraphicLine for more details.
54
#10084 Package For GoLive
aid:Image
ShadowMode
See ShadowMode under element GraphicLine for more details.
ShadowOpacity
See ShadowOpacity under element GraphicLine for more details.
ShadowXOffset
See ShadowXOffset under element GraphicLine for more details.
ShadowYOffset
See ShadowYOffset under element GraphicLine for more details.
StrokeAlignment
See StrokeAlignment under element GraphicLine for more details.
StrokeColor
See StrokeColor under element GraphicLine for more details.
StrokeTint
See StrokeTint under element GraphicLine for more details.
StrokeType
See StrokeType under element GraphicLine for more details.
StrokeWeight
See StrokeWeight under element GraphicLine for more details.
TextWrapPreferences
See TextWrapPreferences under element GraphicLine for more details.
aid:Image
Description
The element aid:Image represents a placed image. Can be a tiff, jpeg, etc. which are based on
kImageItem boss class. A customized raster based image item should inherit from the class
kImageBaseItem.
Example
<aid:Image aid:AssociatedXMLElement="ro_n"
aid:BlendMode="e_norm" aid:Opacity="d_40590000~0"
aid:KnockoutGroup="b_f" aid:IsolateBlending="b_f"
aid:ShadowMode="e_none" aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
#10084 Package For GoLive
55
#10084 Package For GoLive
aid:Image
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_uc7.TextWrapPreference[1]"
aid:ClippingPath="ro_uc7.ClippingPathSettings[1]"
aid:Space="e_cRGB" aid:Profile="c_None"
aid:ImageRenderingIntent="e_RIcs"
aid:LocalDisplaySetting="e_Dflt"
aid:ItemGeometry="x_b_l_0_d_0~0_d_0~0_d_405e0000~0_d_405680
00~0_d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_c04e0000~0_d_c
0468000~0" aid:Id="rl_c7" aid:Label="c_" aid:Self="rc_uc7">
Attributes
TABLE 1.24 Attributes of aid:Image
56
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ClippingPath
The clipping path settingsThe clipping path settings
required
FeatherCornerType
The type of feathering to applyThe type of feathering to
apply
required
FeatherMode
The feather modeThe feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
FillTint
The override of the fill's tint percentage (-1 indicates no
override)
Id
The object's unique id
ImageRenderingIntent
The rendering intent applied to the image
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
#10084 Package For GoLive
aid:Image
Attribute name
SummaryDefault
Opacity
The opacity of the object
OverprintFill
Whether to overprint the fill
Profile
The color profile to use. Either one the idProfile
enumerations or a profile name
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
Space
The color space
required
TextWrapPreferences
The text wrap preferences
required
required
AssociatedXMLElement
This represents the XML element (or elements) associated with this page item.
IXMLUtils::QueryXMLReferenceData() is used to get the reference data
(IXMLReferenceData), which has a method GetReference() that returns a XMLReference. Note
that the XMLReference is reported as a read only object type
BlendMode
This represents the transparency blending mode applied to the object. This property
corresponds to the Blending Mode pop-up menu in the Transparency palette. The
IXPAttributeUtils::GetBasicBlendMode() is used to get the PMBlendingMode type value (see
GraphicTypes.h). Note that kImageBaseItem boss class aggregates IGraphicStyleDescriptor
interface, which is used in IXPAttributeUtils::GetBasicBlendMode().
The following table is a look up table that matches the PMBlendingMode to the value seen in
the XML
TABLE 1.25 PMBlendingMode Enum
PMBlendingMode as defined in is output as the following enum in
GraphicTypes.h
XML
kPMBlendNormal
norm
kPMBlendMultiply
xpMb
#10084 Package For GoLive
57
#10084 Package For GoLive
aid:Image
PMBlendingMode as defined in is output as the following enum in
GraphicTypes.h
XML
kPMBlendScreen
xpMc
kPMBlendOverlay
xpMd
kPMBlendSoftLight
xpMe
kPMBlendHardLight
xpMf
kPMBlendColorDodge
xpMg
kPMBlendColorBurn
xpMh
kPMBlendDarken
xpMi
kPMBlendLighten
xpMj
kPMBlendDifference
xpMk
kPMBlendExclusion
xpMl
kPMBlendHue
xpMm
kPMBlendSaturation
RIsa
kPMBlendColor
colr
kPMBlendLuminosity
xpMp
ClippingPath
This represents the clipping path settings. Please see the element ClippingPathSettings for
more information.
FeatherCornerType
This property controls the appearance of the feathering effect near the corners of the page item,
and corresponds to the Corners pop-up menu in the Feather dialog box. The
IXPAttributeUtils::GetVignetteCorners() is used to get the PMVignetteCorners type value (see
GraphicTypes.h).
The following table is a look up table that matches the PMVignetteCorners to the value seen in
the XML
TABLE 1.26 PMVignetteCorners Enum
PMVignetteCorners as defined in is output as the following enum in
GraphicTypes.h
XML
58
kVTCSharp
xpCa
kVTCSoft
xpCb
kVTCDiffusion
xpCc
#10084 Package For GoLive
aid:Image
FeatherMode
This attribute turns feathering on or off for the page item. This property corresponds to the
Feather option in the Feather dialog box. The IXPAttributeUtils::GetVignetteMode() is used to
get the PMVignetteMode type value (see GraphicTypes.h).
The following table is a look up table that matches the PMVignetteMode to the value seen in
the XML
TABLE 1.27 PMVignetteMode Enum
PMVignetteMode as defined in is output as the following enum in
GraphicTypes.h
XML
kVTMNone
none
kVTMFollowShape
xpFb
FeatherWidth
This represents the width of the feathering effect applied to the page item. This option
corresponds to the Feather Width field in the Feather dialog box. The
IXPAttributeUtils::GetVignetteWidth() is used to get the PMReal type value which is output as
a 64-bit double in the XML
FillColor
This represents the swatch, color, tint, gradient, or mixed ink applied to the fill of the page
item. It is represented by the kGraphicStyleFillRenderingAttrBoss.
IGraphicAttributeUtils::QueryFillRenderingObject is used to get the IRenderingObject object.
Note that kImageBaseItem boss class aggregates IGraphicStyleDescriptor interface, which is
used in QueryFillRenderingObject.
FillTint
This represents the tint percentage applied to the fill of the page item (-1 indicates 100%, or no
override). It is represented by the kGraphicStyleFillTintAttrBoss.
IGraphicAttributeUtils::GetFillTint is used to get the PMReal value that represents the
percentage, which is output as a 64-bit double.
Id
This represents a number identifying the attribute. In any InDesign session, all IDs are unique.
It is actually the specifierData of the corresponding ScriptObject.
ImageRenderingIntent
This represents the rendering intent applied to the image. This attribute is managed by
ICMSSettings interface, which is aggregated onto the kWorkspaceBoss, kDocWorkspaceBoss,
kImageBaseItem, and kCMSDefaultObjectSettingsBoss. The
ICMSSettings::GetRenderingIntent() method is used to get this attribute, and the returned
value is then passed into ICMSUtils::CMSIntentToScriptIntent to get the value reported in a
XML file.
#10084 Package For GoLive
59
#10084 Package For GoLive
aid:Image
The following table is a look up table that matches the renderingIntentto the value seen in the
XML
TABLE 1.28 Rendering Intent Enum
renderingIntent as defined in IC- is output as the following enum in
MSSettings.h
XML
kImage
RIpc
kGraphic
RIsa
kRelative
RIrc
kAbsolute
RIac
kOther
RIcs
kUseCSFImageRI
RIcs
kUseCSFVectorRI
RIcs
kUseCSFPostBlendRI
RIcs
kUseDocImageRI
RIcs
kUseDocVectorRI
RIcs
kUseDocPostBlendRI
RIcs
default
RIcs
IsolateBlending
This represents a boolean. If true, blend the page item in isolation. This property corresponds
to the Isolate Blending option in the Transparency palette. The
IXPAttributeUtils::GetBasicIsolationGroup() is used to get the boolean value.
ItemGeometry
This represents the image item's geometric information in inner coordinates. The relevant
interfaces that manage an item geometry are IPathGeometry, ITransform, and IGeometry on
the kImageItem boss class. The geometry information includes the number of paths (a 32-bit
integer), if there is at least one path for this image, each path is iterated to output its path
points that establishes the path, first the number of path points will be output as a 32-bit
integer, then for each path point (PMPathPoint), its anchor point type (PMPathPointType) is
reported as a 32-bit integer, then its left direction point will be reported as 2 64-bit double
(PMReal for x and y), if the path point's anchor type is NOT kL (see PMPathPointType in
PathTypes.h for definition), then the path point's anchor point will then be output also as 2 64bit double (PMReal for x and y) followed by the path point's right direction point. After the
path's path points is output, a boolean will be reported to indicate if the path is open. After all
the path(s) is reported, the image's geometric bounds will be output as 4 64-bit double
(PMReal) in the order of left, top, right, bottom as the 4 data member from a PMRect. Then
60
#10084 Package For GoLive
aid:Image
finally, the page item's transform matrix (PMMatrix) is reported as 6 consecutive 64-bit double
(PMReal).
Let's take a look at a random ItemGeometry attribute
aid:ItemGeometry="x_b_l_0_d_0~0_d_0~0_d_405e0000~0_d_405680
00~0_d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_c04e0000~0_d_c
0468000~0"
the first x tells us ItemGeometry is a list type and it has 11 (the hex b) items in the list
l_0 indicates there is no path for this item, so nothing to report
d_0~0 is the item's left in 64-bit double of its bounding box
d_0~0 is the item's top in 64-bit double of its bounding box
d_405e0000~0 is the item's right in 64-bit double of its bounding box
d_40568000~0 is the item's bottom in 64-bit double of its bounding box
d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_c04e0000~0_d_c0468000~0 are the 6
member data that comprise a PMMatrix, each one is a 64-bit double that represent a PMReal.
KnockoutGroup
This represents a boolean indicating whether the object is a knockout group. If true, apply
transparency to the objects in the page item, but knock out any background objects. This
property corresponds to the Knockout Group option in the Transparency palette.
Label
This represents a property that can be set to any string (up to 32Kb of text). Recall that all the
InDesign's XML output relies on the scriptable object to describe itself. IScript interface on a
scritable object allows user to set its own tag property through the IScript::SetTag() method.
The value for the Label attribute is obtained via the IScript::GetTag() method
LocalDisplaySetting
This represents the display setting for this page item. The display setting is managed by
IDrawOptionOverrides aggregated on a kDrawablePageItemBoss. The
IDrawOptionOverrides::GetDrawOptionGroup() method is used to get a 32-bit integer that's
converted into an enum before being output in the XML.
The following table is a look up table that matches the display setting to the enum seen in the
XML
#10084 Package For GoLive
61
#10084 Package For GoLive
aid:Image
TABLE 1.29 Draw Options Enum
enum as defined in IDrawOp- is output as the following enum in
tions.h, note that the table only lists XML
the options available in the image
item local overrides.
IDrawOptions::kHighQualityGroup
PHir
IDrawOptions::kTypicalGroup
Ptyp
IDrawOptions::kFastGroup
Popt
IDrawOptions::kUseDefault
Dflt
Opacity
This represents the opacity of the page item. This property corresponds to the Opacity
field/slider in the Transparency palette. The IXPAttributeUtils::GetBasicOpacity() is used to get
the PMReal type value, which is output as a 64-bit double in the XML.
OverprintFill
This represents a boolean. If true, the fill of the page item will overprint. It is represented by the
kGraphicStyleOverprintFillAttrBoss. IGraphicAttributeUtils::GetOverprintFill is used to get
the boolean.
Profile
This represents the color profile name to use Image profile is managed through the
ICMSItemProfileSource aggregated on the kImageBaseItem. If the profile type is
ICMSItemProfileSource::kProfileSourceExternal, then the IPersistUIDData
(IID_ICMSPROFILEUID) on the same kImageBaseItem stores the profile's UID, which then
can be used to reach the kCMSProfileBoss and its ICMSProfile interface. Then
ICMSProfile::GetName() is used to get the profile name set in this attribute, which is of string
type. If the profile type is not ICMSItemProfileSource::kProfileSourceExternal, then the
following table can be used to look up the output string.
TABLE 1.30 ProfileSourceType Enum
ProfileSourceType as defined in is output as the following enum in
ICMSItemProfileSource.h
XML
kProfileSourceDefault
Use Document Default
kProfileSourceEmbedded
Embedded
kProfileSourceNotSet
None
Self
This represents the UID of this object itself.
62
#10084 Package For GoLive
aid:Image
ShadowBlendMode
This represents the transparency blending mode applied to the drop shadow of the page item.
This property corresponds to the Mode pop-up menu in the Drop Shadow dialog box. The
IXPAttributeUtils::GetDropShadowBlendMode() is used to get the PMBlendingMode type
value (see GraphicTypes.h). Please see BlendMode for the look up table for between
PMBlendingMode and the enum used in the XML.
ShadowBlurRadius
This represents the blur radius applied to the drop shadow of the page item. This property
corresponds to the Blur field in the Drop Shadow dialog box. The
IXPAttributeUtils::GetDropShadowBlurRadius() is used to get the PMReal type value, which is
output as a 64-biy double.
ShadowColor
This represents the color of the drop shadow applied to the page item. This property
corresponds to the Color pop-up menu in the Drop Shadow dialog box. The
IXPAttributeUtils::GetDropShadowColorUID() is used to get the UID of the swatch. Note that
kImageBaseItem boss class aggregates IGraphicStyleDescriptor interface, which is used in
IXPAttributeUtils::GetDropShadowColorUID().
ShadowMode
This represents the property that turns the drop shadow effect on or off for the page item, and
corresponds to the Drop Shadow option in the Drop Shadow dialog box. The
IXPAttributeUtils::GetDropShadowMode() is used to get the PMDropShadowMode type value
(see GraphicTypes.h).
The following table is a look up table that matches the PMDropShadowMode to the value seen
in the XML
TABLE 1.31 PMDropShadowMode Enum
PMDropShadowMode as defined is output as the following enum in
in GraphicTypes.h
XML
kDSMNone
none
kDSMBlurred
xpDP
ShadowOpacity
This represents the opacity of the drop shadow applied to the page item, as a percentage from 0
to 100. This property corresponds to the Opacity field in the Drop Shadow dialog box. The
IXPAttributeUtils::GetDropShadowOpacity() is used to get the PMReal type value, which is
output as a 64-bit double.
ShadowXOffset
This represents the horizontal offset of the drop shadow from the page item, in current
measurement units. This property corresponds to the X Offset field in the Drop Shadow dialog
box. Negative values move the shadow to the left; positive values move it to the right. The
#10084 Package For GoLive
63
#10084 Package For GoLive
aid:Inline
IXPAttributeUtils::GetDropShadowOffsetX() is used to get the PMReal type value, which is
output as a 64-bit double.
ShadowYOffset
This represents the horizontal offset of the drop shadow from the page item, in current
measurement units. This property corresponds to the X Offset field in the Drop Shadow dialog
box. Negative values move the shadow to the left; positive values move it to the right. The
IXPAttributeUtils::GetDropShadowOffsetY() is used to get the PMReal type value, which is
output as a 64-bit double.
Space
This represents the color space. A kImageItem aggregates the IImageAttributes interface, and
the method GetTag() on the IImageAttributes is used to access the color space. Note that the
tag IImageAttributes::kPMTagColorSpace corresponds to this attribute.
The following table is a look up table that matches the color space enum as defined in
ImageTypes.h to the value seen in the XML
TABLE 1.32 Color Space Enum
Color space enum as defined in Im- is output as the following enum in
ageTypes.h
XML
kPMGrayColorSpace
cGry
kPMRGBColorSpace
cRGB
kPMCMYKColorSpace
CMYK
kPMICCLabColorSpace
cLAB
TextWrapPreferences
This represents the text wrap applied to the page item. Please see TextWrapPreference for more
details.
aid:Inline
Description
The element aid:Inline represents an inline frame, an embed frame in text. The inline will
follow its parent text as it flows through text blocks or text frames containing the story. Inline is
represented by the kInlineBoss, which is derived from kPageItemBoss.
Example
<aid:Inline aid:Index="rl_9" aid:ParentStory="ro_ub0">
64
#10084 Package For GoLive
aid:InlineList
Attributes
TABLE 1.33 Attributes of aid:Inline
Attribute name
SummaryDefault
Index
Index of the object within its parent
required
ParentStory
The related story
required
Index
This represents the TextIndex of the inline within its parent story. The index is a 32-bit integer
in the XML.
ParentStory
TBD
aid:InlineList
Description
The element aid:InlineList represents a list of Inline elements.
aid:Layer
Description
The element aid:Layer represents the document layer, which can be manipulated via the Layers
Palette. Internally, it is represented by the kDocumentLayerBoss.
Example
<aid:Layer aid:Name="c_Layer 1" aid:Visible="b_t"
aid:Locked="b_f" aid:LayerColor="e_iLbl"
aid:IgnoreWrap="b_f" aid:ShowGuides="b_t"
aid:LockGuides="b_f"
aid:AllPageItems="ry_f_o_ue1_o_ud0_o_ucc_o_ucb_o_uc7_o_uad_
o_uc5_o_uc1_o_uac_o_ua6_o_ua8_o_ua1_o_u9c_o_ua2_o_u98"
aid:Id="rl_77" aid:Label="c_" aid:Self="rc_u77"/>
#10084 Package For GoLive
65
#10084 Package For GoLive
aid:Layer
Attributes
TABLE 1.34 Attributes of aid:Layer
Attribute name
SummaryDefault
AllPageItems
All page items on the layer
Id
The object's unique id
IgnoreWrap
Whether text wrap on this layer will be ignored if the
layer is hidden
required
Label
A label that can be set to any string
required
LayerColor
The color of the layer
required
Locked
Whether the layer is locked
required
LockGuides
Whether guides on this layer are locked
required
Name
The name of the layer
required
Self
This object's UID
required
ShowGuides
Whether guides on this layer are shown
required
Visible
Whether the layer is visible
required
AllPageItems
This represents all of the page items in the object, in this case, the layer, regardless of their
position in the object hierarchy (i.e., page items inside groups or inside other page items will be
included). IPageItemScriptUtils ::GetEveryPageItemList() is used to get a UIDList of every page
item on the object ( layer in this case).
Id
See Id under element Image for more details.
IgnoreWrap
This represents a boolean. If true, the text wrap on any items on this layer will be ignored when
the layer is hidden. The IDocumentLayer interface on the kDocumentLayerBoss maintains the
ignore wrap boolean. IDocumentLayer::GetIgnoreTextWrapWhenNotVisible() is used to get
the boolean.
Label
See Label under element Image for more details.
LayerColor
This represents the layer highlight color. The IDocumentLayer interface on the
kDocumentLayerBoss maintains the UID of the layer color. IDocumentLayer::GetColorUID()
is used to get the UID, which is then used by the IUIColorUtils::GetUIColorIndex() to check if
the color is one of the predefined UI colors. If yes, the color is then output using the following
66
#10084 Package For GoLive
aid:Layer
table. If the color is a customized one, then its RGB value is output as a list of 64-bit double.
Note that IUIColorUtils::GetRGBColorValue() can be used to get the RGB ColorArray (a
K2Vector of PMReal) of the color based on its UID.
TABLE 1.35 UI Color Index Enum
UI color index as defined in IUI- is output as the following enum in
ColorUtils.h
XML
IUIColorUtils::kStockUILightBlue
iLbl
IUIColorUtils::kStockUIRed
iRed
IUIColorUtils::kStockUIGreen
iGrn
IUIColorUtils::kStockUIBlue
iBlu
IUIColorUtils::kStockUIYellow
iYlw
IUIColorUtils::kStockUIMagenta
iMgn
IUIColorUtils::kStockUICyan
iCyn
IUIColorUtils::kStockUIGray
iGry
IUIColorUtils::kStockUIBlack
iBlk
IUIColorUtils::kStockUIOrange
iOrn
IUIColorUtils::kStockUIDarkGreen
iDgr
IUIColorUtils::kStockUITeal
iTel
IUIColorUtils::kStockUITan
iTan
IUIColorUtils::kStockUIBrown
iBrn
IUIColorUtils::kStockUIViolet
iVlt
IUIColorUtils::kStockUIGold
iGld
IUIColorUtils::kStockUIDarkBlue
iDbl
IUIColorUtils::kStockUIPink
iPnk
IUIColorUtils::kStockUILavender
iLvn
IUIColorUtils::kStockUIBrickRed
iBrd
IUIColorUtils::kStockUIOlive
iOlv
IUIColorUtils::kStockUIPeach
iPch
IUIColorUtils::kStockUIBurgundy
iBrg
IUIColorUtils::kStockUIGrassGreen
iGgr
IUIColorUtils::kStockUIOchre
iOcr
#10084 Package For GoLive
67
#10084 Package For GoLive
aid:Layer
UI color index as defined in IUI- is output as the following enum in
ColorUtils.h
XML
IUIColorUtils::kStockUIPurple
iPrp
IUIColorUtils::kStockUILightGray
iLgr
IUIColorUtils::kStockUICharcoal
iChl
IUIColorUtils::kStockUIGridBlue
iGbl
IUIColorUtils::kStockUIGridOrange
iGor
IUIColorUtils::kStockUIFiesta
iFie
IUIColorUtils::kStockUILightOlive
iLol
IUIColorUtils::kStockUILipstick
iLip
IUIColorUtils::kStockUICuteTeal
iCtl
IUIColorUtils::kStockUISulfur
iSul
IUIColorUtils::kStockUIGridGreen
iGdg
IUIColorUtils::kStockUIWhite
iWht
Locked
This represents a boolean. If true, the layer is locked. The IDocumentLayer interface on the
kDocumentLayerBoss maintains the locked boolean. IDocumentLayer::IsLocked() is used to
get the boolean.
LockGuides
This represents a boolean. If true, lock the guides on the layer. The IDocumentLayer interface
on the kDocumentLayerBoss maintains the locked boolean.
IDocumentLayer::IsGuideLocked() is used to get the boolean.
Name
This represents the name of the layer. The IDocumentLayer interface on the
kDocumentLayerBoss maintains the layer name. IDocumentLayer::GetName() is used to get
the name in PMString type, which is output as string in the XML.
Self
This represents the UID of this object itself.
ShowGuides
This represents a boolean. If true, display the guides on this layer. The IDocumentLayer
interface on the kDocumentLayerBoss maintains the guide's visibility boolean.
IDocumentLayer::IsGuideVisible() is used to get the boolean.
68
#10084 Package For GoLive
aid:LayerList
Visible
This represents a boolean. If true, the layer is visible. The IDocumentLayer interface on the
kDocumentLayerBoss maintains the visible boolean. IDocumentLayer::IsVisible() is used to
get the boolean.
aid:LayerList
Description
The element aid:LayerList represents a list of element Layers.
aid:layout
Description
The element aid:layout represents the root element of layout.xml.
aid:Link
Description
The element aid:Link represents a data link. When you link to a graphic, InDesign doesn't
include the graphic file in your publication, but establishes a link between the publication and
the imported file. InDesign creates a low-resolution version of the graphic and use it to draw
the page on screen. The main UI for the data link is the Links Palette and the Link Information.
The Links Palette allows user to maintain the link, for example, fix a broken/missing link and
the Link Information display things like the original graphic file's location and file size. A lot of
the attributes of this elements corresponds to the information in the Link Information dialog.
The data link is represented by the kDataLinkBoss
Example
<aid:Link aid:LinkedFileInfo="x_7_c_E:\PFG\Basic Pub
Folder\Links\custom.hanjourh_c__l_0_l_8c01_c_JPEG_l_0_c_"
aid:AssetURL="c_" aid:AssetEtag="c_" aid:AssetID="c_"
aid:FilePath="rf_E:\PFG\Basic Pub
Folder\Links\custom.hanjourh" aid:Edited="rb_f"
aid:Name="rc_custom.hanjourh" aid:Needed="rb_f"
aid:Status="re_norm" aid:LinkType="rc_JPEG"
aid:Date="rt_1c14798~ef641800" aid:Size="rl_e88"
#10084 Package For GoLive
69
#10084 Package For GoLive
aid:Link
aid:Id="rl_ca" aid:Label="c_" aid:Self="rc_uca"/>
Attributes
TABLE 1.36 Attributes of aid:Link
Attribute name
SummaryDefault
AssetEtag
The asset etag of the link
required
AssetID
The asset ID of the link
required
AssetURL
The asset URL of the link
required
Date
The date and time of the link
Edited
The edit state of the link
FilePath
The file path
Id
The object's unique id
Label
A label that can be set to any string
required
LinkedFileInfo
Low-level information about the linked file
required
LinkType
The type of the link
Name
The name of the link
Needed
The need state of the link
Self
This object's UID
Size
Size of the linked file
Status
The status of the link
required
AssetEtag
This represents the asset etag of the link. It is only populated when the image has been placed
from a WebDAV server using the Workgroup feature under the File menu. This attribute is
populated using the private interface, IWFDataLinkAnnex. If the file is not from a managed
server, the value for this attribute will be "c_" as shown in the example above. The output of the
URL is string type.
AssetID
This represents the asset ID of the link. It is only populated when the image has been placed
from a WebDAV server using the Workgroup feature under the File menu. This attribute is
populated using the private interface, IWFDataLinkAnnex. If the file is not from a managed
server, the value for this attribute will be "c_" as shown in the example above. The output of the
URL is string type.
70
#10084 Package For GoLive
aid:Link
AssetURL
This represents the asset URL of the link. It is only populated when the image has been placed
from a WebDAV server using the Workgroup feature under the File menu. This attribute is
populated using the private interface, IWFDataLinkAnnex. If the file is not from a managed
server, the value for this attribute will be "c_" as shown in the example above. The output of the
URL is string type.
Date
This represents the date and time the link was created. This attribute corresponds to the Date
Modified field in the Link Information. IDataLink::GetStoredState() is used to get the time the
link was created. The time returned by this method is uint64 which is output to XML as a Date
type. To convert a time in uint64 format into something readable, GlobalTime class can be
used. See GlobalTime.h for more details.
Edited
This represents a boolean. If true, the link file has been modified since it was last updated.
Given an IDataLink pointer, one can use IDataLinkHelper::HasInternalDataChanged()
method to check if the linked file is edited.
FilePath
This represents the file path to the folder containing the link file (does not include the file
name). IDataLink interface aggregated on the kDataLinkBoss maintains the original file path
and provide the accessor method GetFullName() that returns the full path in PMString. The
file path is then converted into a SysFile type before being output.
Id
This represents a number identifying the object. In any InDesign session, all ids are unique. See
Id under element Image for more details.
Label
This represents a property that can be set to any string (up to 32Kb of text). See Label under
element GraphicLine for more details.
LinkedFileInfo
This represents low-level information about the linked file. This attribute contains every piece
of information returned by the IDataLink::GetNameInfo() method. Note the attribute value is
a list of 7 items that contains mixed types data, specifically, string and 32bit integer. The
following ordered list explains what each item in the list contains. Please see IDataLink.h and
NameInfo.h for more information.
1.
a string that represents the file name stored in the NameInfo (see NameInfo.h) parameter
returned by IDataLink::GetNameInfo(). On the Mac, it is the file name, and on the PC, it
is the full path.
2.
a string that represents the volume name where the file is located. On the Mac, it is the
Mac volume name, and on the PC, it is empty.
#10084 Package For GoLive
71
#10084 Package For GoLive
aid:Link
3.
a 32-bit long that represents the directory ID, on the Mac, it is the directory ID, and on
the PC, it is 0.
4.
a 32-bit long that represents the ClassID of the boss that implements this IDataLink
interface. For file links this is kDataLinkBoss
5.
a string that represent the file format as returned by the second PMString parameter of
the IDataLink::GetNameInfo(). This value is the same as the attribute LinkType's value.
6.
a 32-bit long that represents the file type of the file. On the Mac, it is the file type stored in
the resource fork, on the PC, it is 0.
7.
a string that represents the full file path for the Mac, IDataLink::GetFullName() is used to
get the path. On PC, it is empty.
LinkType
This represents the type of the link, as is appeared in the File Type field of the Link Information
Dialog. IDataLink::GetNameInfo() is used to get the file type information that is a PMString
type, and it is output as a string in XML. Note that this attribute corresponds to the second
parameter, format, in the GetNameInfo().
Name
This represents the name of the link file, as is appeared in the Name field of the Link
Information Dialog. To access this property, IDataLink::GetBaseName() can be used to get the
name in PMString, which is output as a string in the XML.
Needed
This represents a boolean. If true, the link is needed for printing or export. This attribute
appears in the Link Needed field of the Link Information Dialog. Given an IDataLink pointer,
one can use IDataLinkHelper::IsLinkNeeded() method to check if the linked file is needed
when printing or export.
Self
This represents the UID of this object itself.
Size
This represents the size of the link file on disk. This attribute corresponds to the Size field in the
Link Information Dialog. IDataLink::GetStoredState() is used to get this information, the
returned size is in uint64 type, and it is cast into an unint32 before being output as a long in
XML.
Status
This represents the status of the link, as is appeared in the Current Status field of the Link
Information Dialog. IDataLink::GetStoredState() is first to check if the file is embedded, if it is
not embedded file, then IDataLink::GetCurrentState() is used to get the current status
(IDataLink::StateType) of the link. The IDataLink::StateType is converted into an enum using
the following table.
72
#10084 Package For GoLive
aid:MarginPreference
TABLE 1.37 Link Status Enum
If the link's status is
it is output as the following enum
in XML
IDataLink::kLinkNormal
norm
IDataLink::kLinkOutOfDate
lood
IDataLink::kLinkMissing
lmis
IDataLink::kEmbedded
Lmbd
aid:MarginPreference
Description
The element aid:MarginPreference represents margins and Columns setting as seen in the New
Document Dialog or the Margins and Columns Dialog. When a new document is created,
InDesign first displays a New Document Dialog box allowing user to specify preference like
page margin and the number of columns the user wants. The preference setting entered here is
saved as document wide preference, and the user can override each individual page, page
spread, or master page via the Margins and Columns dialog. For the margin preference that
affects the whole document, it is managed mainly by the IColumnPrefs and IMarginPrefs that
are aggregated by the kWorkspaceBoss and the kDocWorkspaceBoss with an IIDs of
IID_ICOLUMNPREFERENCES and IID_IMARGINPREFERENCES respectively. The session
workspace has preferences associated with it so that new documents assume an application
wide set of defaults. The user can subsequently change the prefs in the document which will
override those set in the session. Note that preference changes made in the session only trickle
down to existing documents if said document has not changed any of the document level
preferences. For the page level margin preference, it is managed by the IMargins and IColumns
interfaces aggregated on the kPageBoss.
Example
<aid:MarginPreference aid:ColumnCount="l_1"
aid:ColumnGutter="u_40280000~0" aid:Top="u_40420000~0"
aid:Bottom="u_40420000~0" aid:Left="u_40420000~0"
aid:Right="u_40420000~0"
aid:Self="rc_u86.MarginPreference[1]"/>
#10084 Package For GoLive
73
#10084 Package For GoLive
aid:MarginPreference
Attributes
TABLE 1.38 Attributes of aid:MarginPreference
Attribute name
SummaryDefault
Bottom
Bottom edge of the object
required
ColumnCount
The number of columns
required
ColumnGutter
The distance between columns in a text frame
required
Left
Left edge of the object
required
Right
Right edge of the object
required
Self
This object's UID
required
Top
Top edge of the object
required
Bottom
This represents the height of the bottom margin. For the workspace level preference,
IMarginPrefs::GetMargins() is used to get the margin. And for the page level,
IMargins::GetMargins() is used. Both method returns a PMReal which is converted into a
ScriptData::kYCoordinate before it is output as 64-bit Unit type in the XML.
ColumnCount
This represents the number of column guides on the page. Note that these column guides have
no effect on the number of columns in a single text frame. For the workspace level preference,
IColumnPrefs::GetNumColumns() is used to get the column count. And for the page level,
IColumns::GetNumberColumns() is used. Both method returns an int32 which is output as a
long in the XML.
ColumnGutter
This represents the distance between columns on the page. For the workspace level preference,
IColumnPrefs::GetGutter() is used to get the gutter size. And for the page level,
IColumns::GetGutter() is used. Both method returns a PMReal which is converted into a
ScriptData::kXCoordinate before it is output as 64-bit Unit type in the XML.
Left
This represents the width of the left margin. It uses the same method as described in Bottom to
output its value except the PMReal value is converted into a ScriptData::kXCoordinate before it
is output.
Right
This represents the width of the right margin. It uses the same method as described in Left to
output its value.
Self
This represents the UID of this object itself.
74
#10084 Package For GoLive
aid:MasterSpread
Top
This represents the height of the top margin. It uses the same method as described in Bottom
to output its value.
aid:MasterSpread
Description
The element aid:MasterSpread represents the background on which you lay out your
publication's pages. Any page items on the master spread also appear on the document page,
on the layers they occupy on the master spread. Internally, the master spread is represented by
the kMasterPagesBoss which derives from kSpreadBoss. Note that a master spread is very
similar to a spread except it aggregates an IMasterSpread which has definition that makes a
spread a master spread. From the UI, user can create a master spread by choosing New Master
from the Pages palette menu.
Example
<aid:MasterSpread aid:PageCount="l_1" aid:Name="rc_AMaster" aid:NamePrefix="c_A" aid:BaseName="c_Master"
aid:ShowMasterItems="b_t" aid:AppliedMaster="o_n"
aid:OverriddenPageItemProps="x_0" aid:Label="c_"
aid:Self="rc_u8d">
Attributes
TABLE 1.39 Attributes of aid:MasterSpread
Attribute name
SummaryDefault
AllPageItems
All page items
AppliedMaster
Master applied to this spread
required
BaseName
base name
required
Id
The object's unique id
Label
A label that can be set to any string
required
Name
The name of the master spread
required
NamePrefix
The name prefix
required
OverriddenPageItemProp
s
TBD
#10084 Package For GoLive
75
#10084 Package For GoLive
aid:MasterSpread
Attribute name
SummaryDefault
PageCount
The number of pages on the spread
required
Self
This object's UID
required
ShowMasterItems
Whether items on a master are displayed
required
AllPageItems
See AllPageItems under element Layer for more details.
AppliedMaster
This represents the master spread applied to this object (master spread in this case) (if any). For
page (kPageBoss), the applied master is managed by the IMasterPage on the kPageBoss. For
spread (kSpreadBoss) and master spread (kMasterPagesBoss), the ISpread::GetNthPageUID(0)
is used to get the IMasterPage on the spread. Once you have an IMasterPage,
GetMasterPageUID() is used to get the master page (kMasterPagesBoss) UID.
BaseName
This represents the base name of the master spread. IMasterSpread aggregated on the
kMasterPagesBoss maintains the base name. IMasterSpread ::GetBasename() is the accessor to
get the base name in PMString which is output as string in XML.
Id
This represents a number identifying the object. In any InDesign session, all ids are unique. See
Id under element Image for more details.
Label
This represents a property that can be set to any string (up to 32Kb of text). See Label under
element GraphicLine for more details.
Name
This represents the name of the master spread. IMasterSpread aggregated on the
kMasterPagesBoss maintains the name. IMasterSpread ::GetName() is the accessor to get the
name in PMString which is output as string in XML.
NamePrefix
This represents the name prefix of the master spread. IMasterSpread aggregated on the
kMasterPagesBoss maintains the prefix. IMasterSpread ::GetPrefix() is the accessor to get the
prefix in PMString which is output as string in XML.
OverriddenPageItemProps
At the time this technote is published, I am not sure what this attribute value should mean in
the context of master spread. From looking in the source code, this value in MasterSpread
element seems will return 0 item. I will update this if more information becomes available.
76
#10084 Package For GoLive
aid:MasterSpreadList
PageCount
This represents the number of pages on this master spread. ISpread interface aggregated on the
kSpreadBoss maintains the page count on a page or master page. ISpread ::GetNumPages() is
used to get the count, which is output as a 32-bit long in the XML.
Self
This represents the UID of this object itself.
ShowMasterItems
This represents a boolean. If true, show page items from the master spread applied to this
master spread (if any). IMasterElementsDrawSetting (IID_IDRAWMASTERELEMENTS)
aggregated on the kSpreadBoss maintains this boolean. Note the kMasterPagesBoss derived
from kSpreadBoss.
aid:MasterSpreadList
Description
The element aid:MasterSpreadList represents a list of element MasterSpread.
aid:Movie
Description
The element aid:Movie represents a movie page item. Movie is a new type of page item in
InDesign CS, it is represented by the kMoviePageItemBoss, which is based on
kMediaPageItemBoss. kMediaPageItemBoss is based on kSplineItemBoss, so the movie page
item possesses several attributes that are common to spline page item.
Example
<aid:Movie aid:Name="c_ifa99.mpeg" aid:Description="c_"
aid:FilePath="c_E:\PFG\Basic Pub Folder\Links\ifa99.mpeg"
aid:FloatingWindowPosition="e_Mcen"
aid:FloatingWindowSize="e_Mful" aid:PlayMode="e_Sone"
aid:PlayOnPageTurn="b_f" aid:ShowControls="b_f"
aid:FloatingWindow="b_f" aid:PosterFile="c_E:\PFG\Basic Pub
Folder\Links\AI50pkg.bmp" aid:PosterType="e_Mpxy"
aid:EmbedInPDF="b_f" aid:AssociatedXMLElement="ro_n"
aid:BlendMode="e_norm" aid:Opacity="d_40590000~0"
aid:KnockoutGroup="b_f" aid:IsolateBlending="b_f"
aid:ShadowMode="e_none" aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
#10084 Package For GoLive
77
#10084 Package For GoLive
aid:Movie
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_u9c.TextWrapPreference[1]"
aid:OverriddenMasterPageItem="o_n"
aid:AllPageItems="ry_1_o_ua2"
aid:LocalDisplaySetting="e_Dflt" aid:Overridden="rb_f"
aid:ItemLayer="o_u77" aid:Nonprinting="b_f"
aid:Locked="b_f"
aid:ItemGeometry="x_19_l_1_l_4_l_2_d_0~0_d_0~0_l_2_d_0~0_d_
406e0000~0_l_2_d_40740000~0_d_406e0000~0_l_2_d_40740000~0_d
_0~0_b_f_d_0~0_d_0~0_d_40740000~0_d_406e0000~0_d_3ff00000~0
_d_0~0_d_0~0_d_3ff00000~0_d_c0640000~0_d_c05e0000~0"
aid:Id="rl_9c" aid:Label="c_" aid:Self="rc_u9c">
Attributes
TABLE 1.40 Attributes of aid:Movie
78
Attribute name
SummaryDefault
AllPageItems
All page items
required
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
Description
Description
required
EmbedInPDF
Embed content in PDF
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
FilePath
The file path
required
FloatingWindow
Floating window
required
FloatingWindowPosition
Floating window position
required
FloatingWindowSize
Floating window size
required
Id
The object's unique id
required
IsolateBlending
Indicates whether the object should blend in isolation
required
#10084 Package For GoLive
aid:Movie
Attribute name
SummaryDefault
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
Locked
Whether the item is locked
required
Name
The name of the movie
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
Overridden
this page item originated on a master spread and was
later overridden
required
OverriddenMasterPageIte
m
The overridden master page item
required
PlayMode
Play mode
required
PlayOnPageTurn
Play on page turn
required
PosterFile
Poster file
required
PosterType
Poster type
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
ShowControls
Show controls
required
TextWrapPreferences
The text wrap preferences
required
AllPageItems
See AllPageItems under Layer element for more details.
#10084 Package For GoLive
79
#10084 Package For GoLive
aid:Movie
AssociatedXMLElement
See AssociatedXMLElement under GraphicLine element for more details.
BlendMode
See BlendMode under GraphicLine element for more details.
Description
This represents a description of the movie. IMediaAttributes aggregated on the
kMediaPageItemBoss maintains the media's title. IMediaAttributes::GetAttribute() (use
IMediaAttributes::enDescription as the target attribute) is used to get the title in PMString,
which is then output as a string in the XML.
EmbedInPDF
This represents a boolean. If True, the media content is embedded in the PDF.
IMediaAttributes aggregated on the kMediaPageItemBoss maintains this flag.
IMediaAttributes::IsFlagSet() (use IMediaAttributes::enEmbedOnPDFExport as the target
attribute) is used to get the boolean.
FeatherCornerType
See FeatherCornerType under GraphicLine element for more details.
FeatherMode
See FeatherMode under GraphicLine element for more details.
FeatherWidth
See FeatherWidth under GraphicLine element for more details.
FilePath
This represents the file path. IMediaContent aggregated on the kMediaPageItemBoss maintains
the media's file path. IMediaContent::GetMediaFilePath() is used to get the file path in
PMString, which is then output as a string in the XML.
FloatingWindow
This represents a boolean. If True, the movie has a floating window. IMediaAttributes
aggregated on the kMediaPageItemBoss maintains this flag.
IMediaAttributes::HasFloatingWindow() is used to get the boolean..
FloatingWindowPosition
This represents the floating window position. IMediaAttributes aggregated on the
kMediaPageItemBoss maintains the media's floating window position.
IMediaAttributes::GetFloatingWindowPosition() is used to get the window position in
PMPoint, the position should be in one of the 9 predefined positions, an enum is assigned for
each position using the following table and output as a string in the XML.
80
#10084 Package For GoLive
aid:Movie
TABLE 1.41 Floating Window Position Enum
If the floating window position is in it is output as the following enum
one of these predefines as defined in XML
in the IMovieAttributes.h
kMovieWindowUpperLeft
cntN
kMovieWindowUpperMiddle
Mumd
kMovieWindowUpperRight
Murt
kMovieWindowCenterLeft
Mclf
kMovieWindowCenter
Mcen
kMovieWindowCenterRight
Mcrt
kMovieWindowLowerLeft
Mllf
kMovieWindowLowerMiddle
Mlmd
kMovieWindowLowerRight
Mlrt
FloatingWindowSize
This represents the floating window scale size, relative to the movie bounds. IMediaAttributes
aggregated on the kMediaPageItemBoss maintains the media's floating window scale size
information. IMediaAttributes::GetFloatingWindowScale() is used to get the window scale size
in FloatingWindowScale, the scale should be in one of the enum FloatingWindowScale defined
in IMovieAttributes.h, an enum is assigned for each scale factor using the following table and
output as a string in the XML.
TABLE 1.42 Floating Window Scale Enum
FloatingWindowScale enum as de- it is output as the following enum
fined in the IMovieAttributes.h
in XML
IMovieAttributes::eOneFifth
Mfif
IMovieAttributes::eOneForth
Mfor
IMovieAttributes::eOneHalf
Mhal
IMovieAttributes::eFull
Mful
IMovieAttributes::e2X
Mtox
IMovieAttributes::e3X
Mtrx
IMovieAttributes::e4X
Mqux
IMovieAttributes::eMax
Mmax
#10084 Package For GoLive
81
#10084 Package For GoLive
aid:Movie
Id
See Id under Image element for more details.
IsolateBlending
See IsolateBlending under GraphicLine element for more details.
ItemGeometry
See ItemGeometry under GraphicLine element for more details.
ItemLayer
See ItemLayer under GraphicLine element for more details.
KnockoutGroup
See KnockoutGroup under GraphicLine element for more details.
Label
See Label under GraphicLine element for more details.
LocalDisplaySetting
See LocalDisplaySetting under GraphicLine element for more details.
Locked
See Locked under GraphicLine element for more details.
Name
This represents the movie's title. IMediaAttributes aggregated on the kMediaPageItemBoss
maintains the media's title. IMediaAttributes::GetAttribute() (use IMediaAttributes::enTitle as
the target attribute) is used to get the title in PMString, which is then output as a string in the
XML.
Nonprinting
See Nonprinting under GraphicLine element for more details.
Opacity
See Opacity under GraphicLine element for more details.
Overridden
This represents a boolean. If True, this page item originated on a master spread and was later
overridden. It is still linked to the page item on the master. Note that IControllingPageItem
interface on the kDrawablePageItemBoss represents the override, so it is check to see that
Interface actually contains a valid UID to see if the page item is indeed overridden.
OverriddenMasterPageItem
See OverriddenMasterPageItem under GraphicLine element for more details.
82
#10084 Package For GoLive
aid:Movie
PlayMode
This represents the play mode IMediaAttributes aggregated on the kMediaPageItemBoss
maintains the media's play mode information. IMediaAttributes::GetPlayMode() is used to get
the mode in IMovieAttributes::PlayMode, an enum is assigned for each mode using the
following table and output as a string in the XML.
TABLE 1.43 PlayMode Enum
PlayMode enum as defined in the
IMovieAttributes.h
it is output as the following enum
in XML
IMovieAttributes::eOnce
Sone
IMovieAttributes::eOpen
Mopn
IMovieAttributes::eRepeat
Srep
PlayOnPageTurn
This represents a boolean. If True, the movie plays on page turn. IMediaAttributes aggregated
on the kMediaPageItemBoss maintains this flag. IMediaAttributes::IsFlagSet() (use
IMediaAttributes::enPlayOnPageTurn as the target attribute) is used to get the boolean.
PosterFile
This represents the movie's poster file path. IMediaContent aggregated on the
kMediaPageItemBoss maintains the poster file path. IMediaContent::GetPosterPath() is used
to get the file path in PMString, which is then output as a string in the XML.
PosterType
This represents the type of the movie poster. IMediaContent aggregated on the
kMediaPageItemBoss maintains the poster type information. IMediaContent::GetPosterType()
is used to get the type in IMediaAttributes::PosterType, an enum is assigned for each type using
the following table and output as a string in the XML.
TABLE 1.44 Movie PosterType Enum
PosterType enum as defined in the it is output as the following enum
IMediaAttributes.h
in XML
IMediaAttributes::eNone
none
IMovieAttributes::eStandard
xpFb
IMovieAttributes::eFromMedia
Mfmf
IMovieAttributes::eProxyImage
Mpxy
Self
This represents the UID of this object itself.
#10084 Package For GoLive
83
#10084 Package For GoLive
aid:Oval
ShadowBlendMode
See ShadowBlendMode under GraphicLine element for more details.
ShadowBlurRadius
See ShadowBlurRadius under GraphicLine element for more details.
ShadowColor
See ShadowColor under GraphicLine element for more details.
ShadowMode
See ShadowMode under GraphicLine element for more details.
ShadowOpacity
See ShadowOpacity under GraphicLine element for more details.
ShadowXOffset
See ShadowXOffset under GraphicLine element for more details.
ShadowYOffset
See ShadowYOffset under GraphicLine element for more details.
ShowControls
This represents a boolean. If True, the movie control will be shown. IMediaAttributes
aggregated on the kMediaPageItemBoss maintains this flag. IMediaAttributes::ShowControls()
is used to get the boolean.
TextWrapPreferences
See element TextWrapPreference for more details.
aid:Oval
Description
The element aid:Oval represents an oval frame page item. It can be created using the Oval
Frame tool (kOvalToolBoss) from the Tools Palette. Or, IPathUtils::CreateOvalSpline() can be
used to create an oval frame programmatically. Internally, an oval frame is represented by a
kSplineItemBoss.
Example
<aid:Oval aid:ContentType="e_grpt"
aid:AssociatedXMLElement="ro_n" aid:BlendMode="e_norm"
aid:Opacity="d_40590000~0" aid:KnockoutGroup="b_f"
aid:IsolateBlending="b_f" aid:ShadowMode="e_none"
aid:ShadowBlendMode="e_xpMb"
84
#10084 Package For GoLive
aid:Oval
aid:ShadowXOffset="d_401c0000~0"
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_u13d.TextWrapPreference[1]"
aid:OverriddenPageItemProps="x_0"
aid:OverriddenMasterPageItem="o_n"
aid:ItemGeometry="x_29_l_1_l_4_l_0_d_c0766ec4~999644c4_d_40
1c58b1~62d2aa00_d_c07509d3~a74e90ca_d_401c58b1~62d2aa00_d_c
073a4e2~b506dcd0_d_401c58b1~62d2aa00_l_0_d_c0728387~e1c2c00
_d_c032ee23~39070540_d_c0728387~e1c2c00_d_c0498306~c168c80_
d_c0728387~e1c2c00_d_c054c77d~3dd4cb30_l_0_d_c073a4e2~b506d
cd0_d_c05b4891~2243b720_d_c07509d3~a74e90ca_d_c05b4891~2243
b720_d_c0766ec4~999644c4_d_c05b4891~2243b720_l_0_d_c0779020
~4080f593_d_c054c77d~3dd4cb30_d_c0779020~4080f593_d_c049830
6~c168c80_d_c0779020~4080f593_d_c032ee23~39070540_b_f_d_c07
79020~4080f593_d_c05b4891~2243b720_d_c0728387~e1c2c00_d_401
c58b1~62d2aa00_d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_4026
ad5a~b56ad5c0_d_402d7af5~ebd7af00"
aid:LocalDisplaySetting="e_Dflt" aid:FillColor="o_u11"
aid:FillTint="d_bff00000~0" aid:StrokeWeight="u_3ff00000~0"
aid:MiterLimit="d_40100000~0" aid:EndCap="e_bcap"
aid:EndJoin="e_mjon" aid:StrokeType="e_sold"
aid:LeftLineEnd="e_none" aid:RightLineEnd="e_none"
aid:StrokeColor="o_u11" aid:StrokeTint="d_bff00000~0"
aid:CornerEffect="e_none" aid:CornerRadius="d_40280000~0"
aid:GradientFillStart="x_2_u_4082f4e9~d3a74865_u_407b3af5~e
bd77ae0" aid:GradientFillLength="u_0~0"
aid:GradientFillAngle="d_0~0"
aid:GradientStrokeStart="x_2_u_4082f4e9~d3a74865_u_407b3af5
~ebd77ae0" aid:GradientStrokeLength="u_0~0"
aid:GradientStrokeAngle="d_0~0" aid:ItemLayer="o_u77"
aid:Nonprinting="b_f" aid:GapTint="d_bff00000~0"
aid:StrokeAlignment="e_stAC" aid:Locked="b_f"
aid:Label="c_" aid:Self="rc_u13d">
Attributes
TABLE 1.45 Attributes of aid:Oval
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
#10084 Package For GoLive
required
85
#10084 Package For GoLive
aid:Oval
86
Attribute name
SummaryDefault
BlendMode
The blend mode used to combine the object's color
with the background
required
ContentType
The type of content
required
CornerEffect
The type of corner effect on the object
required
CornerRadius
The radius of the corner
required
EndCap
The appearance of both ends of an open path
required
EndJoin
The appearance of the stroke at corner points
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
required
FillTint
The override of the fill's tint percentage (-1 indicates no
override)
required
GapTint
Gap tint for the page item
required
GradientFillAngle
Angle of a linear gradient on the fill
required
GradientFillLength
Length of ramp for a linear gradient or radius of a radial
gradient on the fill
required
GradientFillStart
Center point for a radial gradient or starting point for a
linear gradient on the fill
required
GradientStrokeAngle
Angle of a linear gradient on the stroke
required
GradientStrokeLength
Length of ramp for a linear gradient or radius of a radial
gradient on the stroke
required
GradientStrokeStart
Center point for a radial gradient or starting point for a
linear gradient on the stroke
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LeftLineEnd
A shape, such as an arrowhead, on the left end of an
open path.
required
LocalDisplaySetting
The display settings for this page item
required
#10084 Package For GoLive
aid:Oval
Attribute name
SummaryDefault
Locked
Whether the item is locked
required
MiterLimit
When a corner point switches from a mitered (pointed)
join to a beveled (squared-off) join
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
OverprintFill
Whether to overprint the fill
OverprintStroke
Whether to overprint the stroke
OverriddenMasterPageIte
m
The overridden master page item
required
OverriddenPageItemProp
s
The overridden properties on the page item
required
RightLineEnd
A shape, such as an arrowhead, on the right end of an
open path
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
StrokeAlignment
The stroke alignment for the page item
required
StrokeColor
The stroke color
required
StrokeTint
The override of the stroke's tint percentage (-1 indicates
no override)
required
StrokeType
The stroke type
required
StrokeWeight
The weight (in points) to apply to the stroke of the line
required
TextWrapPreferences
The text wrap preferences
required
AssociatedXMLElement
See AssociatedXMLElement under element GraphicLine for more details.
#10084 Package For GoLive
87
#10084 Package For GoLive
aid:Oval
BlendMode
See BlendMode under element GraphicLine for more details.
ContentType
See ContentType under element GraphicLine for more details.
CornerEffect
See CornerEffect under element GraphicLine for more details.
CornerRadius
See CornerRadius under element GraphicLine for more details.
EndCap
See EndCap under element GraphicLine for more details.
EndJoin
See EndJoin under element GraphicLine for more details.
FeatherCornerType
See FeatherCornerType under element GraphicLine for more details.
FeatherMode
See FeatherMode under element GraphicLine for more details.
FeatherWidth
See FeatherWidth under element GraphicLine for more details.
FillColor
See FillColor under element GraphicLine for more details.
FillTint
See FillTint under element GraphicLine for more details.
GapTint
See GapTint under element GraphicLine for more details.
GradientFillAngle
See GradientFillAngle under element GraphicLine for more details.
GradientFillLength
See GradientFillLength under element GraphicLine for more details.
GradientFillStart
See GradientFillStart under element GraphicLine for more details.
GradientStrokeAngle
See GradientStrokeAngle under element GraphicLine for more details.
88
#10084 Package For GoLive
aid:Oval
GradientStrokeLength
See GradientStrokeLength under element GraphicLine for more details.
GradientStrokeStart
See GradientStrokeStart under element GraphicLine for more details.
IsolateBlending
See IsolateBlending under element GraphicLine for more details.
ItemGeometry
See ItemGeometry under element GraphicLine for more details.
ItemLayer
See ItemLayer under element GraphicLine for more details.
KnockoutGroup
See KnockoutGroup under element GraphicLine for more details.
Label
See Label under element GraphicLine for more details.
LeftLineEnd
See LeftLineEnd under element GraphicLine for more details.
LocalDisplaySetting
See LocalDisplaySetting under element GraphicLine for more details.
Locked
See Locked under element GraphicLine for more details.
MiterLimit
See MiterLimit under element GraphicLine for more details.
Nonprinting
See Nonprinting under element GraphicLine for more details.
Opacity
See Opacity under element GraphicLine for more details.
OverprintFill
See OverprintFill under element GraphicLine for more details.
OverprintStroke
See OverprintStroke under element GraphicLine for more details.
OverriddenMasterPageItem
See OverriddenMasterPageItem under element GraphicLine for more details.
#10084 Package For GoLive
89
#10084 Package For GoLive
aid:Oval
OverriddenPageItemProps
See OverriddenPageItemProps under element GraphicLine for more details.
RightLineEnd
See RightLineEnd under element GraphicLine for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element GraphicLine for more details.
ShadowBlurRadius
See ShadowBlurRadius under element GraphicLine for more details.
ShadowColor
See ShadowColor under element GraphicLine for more details.
ShadowMode
See ShadowMode under element GraphicLine for more details.
ShadowOpacity
See ShadowOpacity under element GraphicLine for more details.
ShadowXOffset
See ShadowXOffset under element GraphicLine for more details.
ShadowYOffset
See ShadowYOffset under element GraphicLine for more details.
StrokeAlignment
See StrokeAlignment under element GraphicLine for more details.
StrokeColor
See StrokeColor under element GraphicLine for more details.
StrokeTint
See StrokeTint under element GraphicLine for more details.
StrokeType
See StrokeType under element GraphicLine for more details.
StrokeWeight
See StrokeWeight under element GraphicLine for more details.
TextWrapPreferences
See element TextWrapPreference for more details.
90
#10084 Package For GoLive
aid:Page
aid:Page
Description
The element aid:Page represents a page, which corresponds to a kPageBoss.
Example
<aid:Page aid:Name="rc_1" aid:AppliedSection="ro_u87"
aid:DocumentOffset="rl_1"
aid:Bounds="rx_4_u_0~0_u_0~0_u_408a4f1e~3c78bd67_u_40829a34
~68d19d0e" aid:AppliedTrapStyle="o_u79"
aid:MarginPreferences="ro_u7f.MarginPreference[1]"
aid:MasterPageItems="ry_1_o_u8f" aid:AppliedMaster="o_u88"
aid:TabOrder="y_0" aid:Label="c_" aid:Self="rc_u7f">
<aid:MarginPreference aid:ColumnCount="l_1"
aid:ColumnGutter="u_40280000~0" aid:Top="u_40420000~0"
aid:Bottom="u_40420000~0" aid:Left="u_40420000~0"
aid:Right="u_40420000~0"
aid:Self="rc_u7f.MarginPreference[1]"/>
</aid:Page>
Attributes
TABLE 1.46 Attributes of aid:Page
Attribute name
SummaryDefault
AllPageItems
All page items
AppliedMaster
Master applied to this spread
AppliedSection
The section associated with this page
AppliedTrapStyle
The trap style associated with this page
required
Bounds
The bounds of the page
required
DocumentOffset
Offset of the page in the document.
required
Id
The object's unique id
Index
Index of the object within its parent
Label
A label that can be set to any string
required
MarginPreferences
margin preferences for the page
required
MasterPageItems
All items on the applied master pages that have not
been overridden
required
#10084 Package For GoLive
required
91
#10084 Package For GoLive
aid:Page
Attribute name
SummaryDefault
Name
The name of the page
required
Self
This object's UID
required
TabOrder
The order of tabbing among form fields
required
AllPageItems
See AllPageItems under Layer element for more details.
AppliedMaster
This represents the master spread applied to the page. See AppliedMaster under element
MasterSpread for more details.
AppliedSection
This represents the section associated with this page. The IPageList aggregated on a kDocBoss
can be used to find out the page section via the method GetSectionIndex(). Then the
ISectionList on the kDocBoss can be used to find the ISection object via the method
QueryNthSection() given the index returned by IPageList::GetSectionIndex(). Note that
GetSectionIndex() may fail to find the index if this page is not on a spread. It might be on a
Master page, for example. In that case, there will not be any ISection* returned.
AppliedTrapStyle
This represents the trapping style (kTrapStyleBoss) associated with this page. The kPageBoss
has an addin interface named IPersistUIDData (IID_ITRAPSTYLEUIDDATA), if it contains
valid UID, it points to the trap style object (kTrapStyleBoss) to be output for this attribute. If
there is no valid trap style specifically for the page, then the document workspace
(kDocWorkspace) aggregates an ITrapStyleListMgr that maintains a list of trap styles for the
document. ITrapStyleUtils::QueryTrapStyleListMgr can be used to get to ITrapStyleListMgr,
then GetNoStyleUIDRef() is used to get the "No Trap Style" style UID for output.
Bounds
This represents the bounds of the page. IGeometry on the kPageBoss is used to get the page's
bounding box via its GetStrokeBoundingBox() method. The bounding box will then minus the
spread offset obtained via the IPageItemScriptUtils::GetOffsetPoint() (based on its parent
spread) to get the the PMRect for output. The PMRect is output as a list of 4 Units in the order
of Top, Left, Bottom, Right. Top and Bottom are converted to Unit based on
ScriptData::kYCoordinate while the Left and Right are converted to Unit based on
ScriptData::kXCoordinate.
DocumentOffset
This represents the offset of the page in the document, meaning the page's index in the
document. The index is obtained via the IPageList::GetPageIndex() given a page UID. Note
that IPageList is aggregated on a kDocBoss. The index is 1-based and is output as a 32-bit long
in the XML.
92
#10084 Package For GoLive
aid:Page
Id
See Id under element Image for more details.
Index
This represents the index of the page within its parent spread. To get the index, one should go
up the hierarchy via kPageBoss's IHierarchy to find the page's containing spread (ISpread) and
use ISpread::GetPageIndex() to find the index. The index is 1-based and is output as a 32-bit
long in the XML.
Label
This represents a property that can be set to any string (up to 32Kb of text). See Label under
element GraphicLine for more details.
MarginPreferences
This represents the margin preferences for the page. See the element MarginPreference for
more details.
MasterPageItems
This represents all items on the applied master spread(s) that have not been overridden. The
IMasterOverrideList on the kPageBoss maintains a list of overridden page items. Every page
items on the master page is compared with the list. Those page items that are not overridden
are collected, and their UIDs are appended in an object list and output in the XML.
Name
This represents the name of the page. The kDocBoss aggregates the interface, IPageList, which
maintains the pages's names on the document. Given a page's UID, IPageList::GetPageString()
will return a PMString that corresponds to page's name, which is output as a string in the
XML.
Self
This represents the UID of this object itself.
TabOrder
This represents the order of tabbing among the form fields on the page. kSpreadBoss
aggregates an interface, ISpreadFieldOrder, which is responsible for keeping track of the tab
order if there is form field (kFormFieldItemBoss) on the page. ISpreadFieldOrder
::GetTabOrder() returns ISpreadFieldOrder::TabOrder, which is a K2Vector of the form field
page items' UIDs.. Each page item's UID is output in the XML as object type.
#10084 Package For GoLive
93
#10084 Package For GoLive
aid:PDF
aid:PDF
Description
The element aid:PDF represents a placed PDF graphic. A PDF graphic is a page item that is
represented by the kPlacedPDFItemBoss, which is based on the kDrawablePageItemBoss. So
most of the common page item attributes are also applicable to the PDF.
Example
<aid:PDF aid:AssociatedXMLElement="ro_n"
aid:BlendMode="e_norm" aid:Opacity="d_40590000~0"
aid:KnockoutGroup="b_f" aid:IsolateBlending="b_f"
aid:ShadowMode="e_none" aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:PDFAttributes="ro_ua8.PDFAttribute[1]"
aid:ClippingPath="ro_ua8.ClippingPathSettings[1]"
aid:ItemGeometry="x_b_l_0_d_0~0_d_0~0_d_40832000~0_d_4088c0
00~0_d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_c0732000~0_d_c
078c000~0" aid:LocalDisplaySetting="e_Dflt" aid:Label="c_"
aid:Self="rc_ua8">
<aid:PDFAttribute aid:PageNumber="l_1" aid:PDFCrop="e_CrpP"
aid:PreserveHalftone="b_t" aid:TransparentBackground="b_t"
aid:Self="rc_ua8.PDFAttribute[1]"/>
<aid:ClippingPathSettings aid:ClippingType="e_none"
aid:InvertPath="b_f" aid:IncludeInsideEdges="b_f"
aid:RestrictToFrame="b_f" aid:UseHighResolutionImage="b_t"
aid:Threshold="l_19" aid:Tolerance="d_40000000~0"
aid:InsetFrame="d_0~0" aid:PhotoshopPathNames="x_0"
aid:AlphaChannelPathNames="x_0" aid:AppliedPathName="c_"
aid:Self="rc_ua8.ClippingPathSettings[1]"/>
<aid:Link aid:LinkedFileInfo="x_c_c_E:\PFG\images\AI
CMYK\10~sep~cmyk.ai_c__l_0_l_8c01_c_Adobe Portable Document
Format
(PDF)_l_0_c__t_0~2aeb14_t_1c2b375~bb9d7800_l_0_b_t_b_f"
aid:AssetURL="c_" aid:AssetEtag="c_" aid:AssetID="c_"
aid:Label="c_" aid:Self="rc_uaa"/>
</aid:PDF>
94
#10084 Package For GoLive
aid:PDF
Attributes
TABLE 1.47 Attributes of aid:PDF
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ClippingPath
The clipping path settings
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
Opacity
The opacity of the object
required
PDFAttributes
PDF Place Setting
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
AssociatedXMLElement
See AssociatedXMLElement under element Image for more details.
BlendMode
See BlendMode under element Image for more details.
#10084 Package For GoLive
95
#10084 Package For GoLive
aid:PDF
ClippingPath
See the element ClippingPathSettings for more information.
FeatherCornerType
See FeatherCornerType under element Image for more details.
FeatherMode
See FeatherMode under element Image for more details.
FeatherWidth
See FeatherWidth under element Image for more details.
IsolateBlending
See BlendMode under element Image for more details.
ItemGeometry
See ItemGeometry under element Image for more details.
KnockoutGroup
See BlendMode under element Image for more details.
Label
See Label under element Image for more details.
LocalDisplaySetting
See LocalDisplaySetting under element Image for more details.
Opacity
See BlendMode under element Image for more details.
PDFAttributes
See element PDFAttribute for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element Image for more details.
ShadowBlurRadius
See ShadowBlurRadius under element Image for more details.
ShadowColor
See ShadowColor under element Image for more details.
ShadowMode
See ShadowMode under element Image for more details.
96
#10084 Package For GoLive
aid:PDFAttribute
ShadowOpacity
See ShadowOpacity under element Image for more details.
ShadowXOffset
See ShadowXOffset under element Image for more details.
ShadowYOffset
See ShadowYOffset under element Image for more details.
aid:PDFAttribute
Description
The element aid:PDFAttribute represents the settings you see in Place PDF dialog box, which is
displayed when you import a PDF graphic and have turned on the Import Options checkbox in
the Place dialog box. The settings are managed by the interface IPDFAttributes aggregated on
the kPlacedPDFItemBoss.
Attributes
TABLE 1.48 Attributes of aid:PDFAttribute
Attribute name
SummaryDefault
PageNumber
the page of the PDF to place
required
PDFCrop
the area of the PDF to use when importing the PDF
page
required
PreserveHalftone
preserve the halftone screens in the PDF when printing
required
Self
This object's UID
required
TransparentBackground
background of the PDF is transparent
required
PageNumber
This represents the page of the PDF to place. IPDFAttributes::GetPageIndex() is used to get the
page number. The index returned by GetPageIndex() is added by one before it is output as a
32-bit long in the XML.
PDFCrop
This defines the area of the PDF to use when importing the PDF page.
IPDFAttributes::GetCropTo() is used to get the 6 pre-defined options as available in the Place
PDF dialog box. GetCropTo() returns an uint32 that will be one of those options (as enum
defined in the IPDFPlacePrefs.h). The following table shows the final enum output for each
possible option.
#10084 Package For GoLive
97
#10084 Package For GoLive
aid:PICT
TABLE 1.49 Crop To Options Enum
The Crop To options in the Place is output as the following enum in
PDF dialog, defined in the IPDF- XML
PlacePrefs.h
IPDFPlacePrefs::kCropToContent
CrpC
IPDFPlacePrefs::kCropToArt
CrpA
IPDFPlacePrefs::kCropToPage
CrpP
IPDFPlacePrefs::kCropToTrim
CrpT
IPDFPlacePrefs::kCropToBleed
CrpB
IPDFPlacePrefs::kCropToMedia
CrpM
PreserveHalftone
This represents a boolean. If true, preserve the halftone screens in the PDF when printing to a
PostScript device. The boolean value is obtained via the IPDFAttributes::GetPreserveScreens()
Self
This represents the UID of this object itself.
TransparentBackground
This represents a boolean. If true, the background of the PDF is transparent. The boolean value
is obtained via the IPDFAttributes::GetTransparentBackground()
aid:PICT
Description
The element aid:PICT represents a PICT page item, which corresponds to the kPICTItem boss
class. The PICT element and the Image element share many same attributes They follow
exactly the same format as explained in the Image element. And all the attributes are obtained
the same way too.
Attributes
TABLE 1.50 Attributes of aid:PICT
98
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
#10084 Package For GoLive
aid:PICT
Attribute name
SummaryDefault
ClippingPath
The clipping path settings
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
Opacity
The opacity of the object
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
TextWrapPreferences
The text wrap preferences
required
AssociatedXMLElement
See AssociatedXMLElement under element Image for more details.
BlendMode
See BlendMode under element Image for more details.
ClippingPath
See ClippingPath under element Image for more details.
FeatherCornerType
See FeatherCornerType under element Image for more details.
FeatherMode
See FeatherMode under element Image for more details.
#10084 Package For GoLive
99
#10084 Package For GoLive
aid:PICT
FeatherWidth
See FeatherWidth under element Image for more details.
IsolateBlending
See IsolateBlending under element Image for more details.
ItemGeometry
See ItemGeometry under element Image for more details.
KnockoutGroup
See KnockoutGroup under element Image for more details.
Label
See Label under element Image for more details.
LocalDisplaySetting
See LocalDisplaySetting under element Image for more details.
Opacity
See Opacity under element Image for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element Image for more details.
ShadowBlurRadius
See ShadowBlurRadius under element Image for more details.
ShadowColor
See ShadowColor under element Image for more details.
ShadowMode
See ShadowMode under element Image for more details.
ShadowOpacity
See ShadowOpacity under element Image for more details.
ShadowXOffset
See ShadowXOffset under element Image for more details.
ShadowYOffset
See ShadowYOffset under element Image for more details.
TextWrapPreferences
See element TextWrapPreference for more details.
100
#10084 Package For GoLive
aid:Polygon
aid:Polygon
Description
The element aid:Polygon represents an polygon frame page item. It can be created using the
Polygon Frame tool (kRegPolyToolBoss) from the Tools Palette. Or,
IPathUtils::CreateRegPolySpline() can be used to create an polygon frame programmatically.
Internally, an polygon frame is represented by a kSplineItemBoss.
Attributes
TABLE 1.51 Attributes of aid:Polygon
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ContentType
The type of content
required
CornerEffect
The type of corner effect on the object
required
CornerRadius
The radius of the corner
required
EndCap
The appearance of both ends of an open path
required
EndJoin
The appearance of the stroke at corner points
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
required
FillTint
The override of the fill's tint percentage (-1 indicates no
override)
required
GapTint
Gap tint for the page item
required
GradientFillAngle
Angle of a linear gradient on the fill
required
GradientFillLength
Length of ramp for a linear gradient or radius of a radial
gradient on the fill
required
GradientFillStart
Center point for a radial gradient or starting point for a
linear gradient on the fill
required
GradientStrokeAngle
Angle of a linear gradient on the stroke
required
#10084 Package For GoLive
101
#10084 Package For GoLive
aid:Polygon
102
Attribute name
SummaryDefault
GradientStrokeLength
Length of ramp for a linear gradient or radius of a radial
gradient on the stroke
required
GradientStrokeStart
Center point for a radial gradient or starting point for a
linear gradient on the stroke
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LeftLineEnd
A shape, such as an arrowhead, on the left end of an
open path.
required
LocalDisplaySetting
The display settings for this page item
required
Locked
Whether the item is locked
required
MiterLimit
When a corner point switches from a mitered (pointed)
join to a beveled (squared-off) join
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
OverprintFill
Whether to overprint the fill
OverprintStroke
Whether to overprint the stroke
OverriddenMasterPageIte
m
The overridden master page item
required
OverriddenPageItemProp
s
The overridden properties on the page item
required
RightLineEnd
A shape, such as an arrowhead, on the right end of an
open path
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
#10084 Package For GoLive
aid:Polygon
Attribute name
SummaryDefault
ShadowYOffset
The vertical offset of the shadow
required
StrokeAlignment
The stroke alignment for the page item
required
StrokeColor
The stroke color
required
StrokeTint
The override of the stroke's tint percentage (-1 indicates
no override)
required
StrokeType
The stroke type
required
StrokeWeight
The weight (in points) to apply to the stroke of the line
required
TextWrapPreferences
The text wrap preferences
required
AssociatedXMLElement
See AssociatedXMLElement under element GraphicLine for more details.
BlendMode
See BlendMode under element Oval for more details.
ContentType
See ContentType under element GraphicLine for more details.
CornerEffect
See CornerEffect under element GraphicLine for more details.
CornerRadius
See CornerRadius under element GraphicLine for more details.
EndCap
See EndCap under element GraphicLine for more details.
EndJoin
See EndJoin under element GraphicLine for more details.
FeatherCornerType
See FeatherCornerType under element GraphicLine for more details.
FeatherMode
See FeatherMode under element GraphicLine for more details.
FeatherWidth
See FeatherWidth under element GraphicLine for more details.
FillColor
See FillColor under element GraphicLine for more details.
#10084 Package For GoLive
103
#10084 Package For GoLive
aid:Polygon
FillTint
See FillTint under element GraphicLine for more details.
GapTint
See GapTint under element GraphicLine for more details.
GradientFillAngle
See GradientFillAngle under element GraphicLine for more details.
GradientFillLength
See GradientFillLength under element GraphicLine for more details.
GradientFillStart
See GradientFillStart under element GraphicLine for more details.
GradientStrokeAngle
See GradientStrokeAngle under element GraphicLine for more details.
GradientStrokeLength
See GradientStrokeLength under element GraphicLine for more details.
GradientStrokeStart
See GradientStrokeStart under element GraphicLine for more details.
IsolateBlending
See IsolateBlending under element GraphicLine for more details.
ItemGeometry
See ItemGeometry under element GraphicLine for more details.
ItemLayer
See ItemLayer under element GraphicLine for more details.
KnockoutGroup
See KnockoutGroup under element GraphicLine for more details.
Label
See Label under element GraphicLine for more details.
LeftLineEnd
See LeftLineEnd under element GraphicLine for more details.
LocalDisplaySetting
See LocalDisplaySetting under element GraphicLine for more details.
Locked
See Locked under element GraphicLine for more details.
104
#10084 Package For GoLive
aid:Polygon
MiterLimit
See MiterLimit under element GraphicLine for more details.
Nonprinting
See Nonprinting under element GraphicLine for more details.
Opacity
See Opacity under element GraphicLine for more details.
OverprintFill
See OverprintFill under element GraphicLine for more details.
OverprintStroke
See OverprintStroke under element GraphicLine for more details.
OverriddenMasterPageItem
See OverriddenMasterPageItem under element GraphicLine for more details.
OverriddenPageItemProps
See OverriddenPageItemProps under element GraphicLine for more details.
RightLineEnd
See RightLineEnd under element GraphicLine for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element GraphicLine for more details.
ShadowBlurRadius
See ShadowBlurRadius under element GraphicLine for more details.
ShadowColor
See ShadowColor under element GraphicLine for more details.
ShadowMode
See ShadowMode under element GraphicLine for more details.
ShadowOpacity
See ShadowOpacity under element GraphicLine for more details.
ShadowXOffset
See ShadowXOffset under element GraphicLine for more details.
ShadowYOffset
See ShadowYOffset under element GraphicLine for more details.
#10084 Package For GoLive
105
#10084 Package For GoLive
aid:Rectangle
StrokeAlignment
See StrokeAlignment under element GraphicLine for more details.
StrokeColor
See StrokeColor under element GraphicLine for more details.
StrokeTint
See StrokeTint under element GraphicLine for more details.
StrokeType
See StrokeType under element GraphicLine for more details.
StrokeWeight
See StrokeWeight under element GraphicLine for more details.
TextWrapPreferences
See element TextWrapPreference for more details.
aid:Rectangle
Description
The element aid:Rectangle represents an rectangle frame page item. It can be created using the
Rectangle Frame tool (kRectFrameToolBoss) from the Tools Palette. Or,
IPathUtils::CreateRectangleSpline() can be used to create an rectangle frame
programmatically. Internally, an rectangle frame is represented by a kSplineItemBoss.
Attributes
TABLE 1.52 Attributes of aid:Rectangle
106
Attribute name
SummaryDefault
AllPageItems
All page items
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ContentType
The type of content
required
CornerEffect
The type of corner effect on the object
required
CornerRadius
The radius of the corner
required
EndCap
The appearance of both ends of an open path
required
#10084 Package For GoLive
aid:Rectangle
Attribute name
SummaryDefault
EndJoin
The appearance of the stroke at corner points
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
required
FillTint
The override of the fill's tint percentage (-1 indicates no
override)
required
GapTint
Gap tint for the page item
required
GradientFillAngle
Angle of a linear gradient on the fill
required
GradientFillLength
Length of ramp for a linear gradient or radius of a radial
gradient on the fill
required
GradientFillStart
Center point for a radial gradient or starting point for a
linear gradient on the fill
required
GradientStrokeAngle
Angle of a linear gradient on the stroke
required
GradientStrokeLength
Length of ramp for a linear gradient or radius of a radial
gradient on the stroke
required
GradientStrokeStart
Center point for a radial gradient or starting point for a
linear gradient on the stroke
required
Id
The object's unique id
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LeftLineEnd
A shape, such as an arrowhead, on the left end of an
open path.
required
LocalDisplaySetting
The display settings for this page item
required
Locked
Whether the item is locked
required
MiterLimit
When a corner point switches from a mitered (pointed)
join to a beveled (squared-off) join
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
#10084 Package For GoLive
107
#10084 Package For GoLive
aid:Rectangle
Attribute name
SummaryDefault
OverprintFill
Whether to overprint the fill
OverprintStroke
Whether to overprint the stroke
Overridden
this page item originated on a master spread and was
later overridden
OverriddenMasterPageIte
m
The overridden master page item
OverriddenPageItemProp
s
The overridden properties on the page item
RightLineEnd
A shape, such as an arrowhead, on the right end of an
open path
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
StrokeAlignment
The stroke alignment for the page item
required
StrokeColor
The stroke color
required
StrokeTint
The override of the stroke's tint percentage (-1 indicates
no override)
required
StrokeType
The stroke type
required
StrokeWeight
The weight (in points) to apply to the stroke of the line
required
TextWrapPreferences
The text wrap preferences
required
AllPageItems
See AllPageItems under element Layer for more details.
AssociatedXMLElement
See AssociatedXMLElement under element GraphicLine for more details.
BlendMode
See BlendMode under element GraphicLine for more details.
108
required
#10084 Package For GoLive
aid:Rectangle
ContentType
See ContentType under element GraphicLine for more details.
CornerEffect
See CornerEffect under element GraphicLine for more details.
CornerRadius
See CornerRadius under element GraphicLine for more details.
EndCap
See EndCap under element GraphicLine for more details.
EndJoin
See EndJoin under element GraphicLine for more details.
FeatherCornerType
See FeatherCornerType under element GraphicLine for more details.
FeatherMode
See FeatherMode under element GraphicLine for more details.
FeatherWidth
See FeatherWidth under element GraphicLine for more details.
FillColor
See FillColor under element GraphicLine for more details.
FillTint
See FillTint under element GraphicLine for more details.
GapTint
See GapTint under element GraphicLine for more details.
GradientFillAngle
See GradientFillAngle under element GraphicLine for more details.
GradientFillLength
See GradientFillLength under element GraphicLine for more details.
GradientFillStart
See GradientFillStart under element GraphicLine for more details.
GradientStrokeAngle
See GradientStrokeAngle under element GraphicLine for more details.
GradientStrokeLength
See GradientStrokeLength under element GraphicLine for more details.
#10084 Package For GoLive
109
#10084 Package For GoLive
aid:Rectangle
GradientStrokeStart
See GradientStrokeStart under element GraphicLine for more details.
Id
See Id under element Image for more details.
IsolateBlending
See IsolateBlending under element GraphicLine for more details.
ItemGeometry
See ItemGeometry under element GraphicLine for more details.
ItemLayer
See ItemLayer under element GraphicLine for more details.
KnockoutGroup
See KnockoutGroup under element GraphicLine for more details.
Label
See Label under element GraphicLine for more details.
LeftLineEnd
See LeftLineEnd under element GraphicLine for more details.
LocalDisplaySetting
See LocalDisplaySetting under element GraphicLine for more details.
Locked
See Locked under element GraphicLine for more details.
MiterLimit
See MiterLimit under element GraphicLine for more details.
Nonprinting
See Nonprinting under element GraphicLine for more details.
Opacity
See Opacity under element GraphicLine for more details.
OverprintFill
See OverprintFill under element GraphicLine for more details.
OverprintStroke
See OverprintStroke under element GraphicLine for more details.
Overridden
See Overridden under element Movie for more details.
110
#10084 Package For GoLive
aid:Rectangle
OverriddenMasterPageItem
See OverriddenMasterPageItem under element GraphicLine for more details.
OverriddenPageItemProps
See OverriddenPageItemProps under element GraphicLine for more details.
RightLineEnd
See RightLineEnd under element GraphicLine for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element GraphicLine for more details.
ShadowBlurRadius
See ShadowBlurRadius under element GraphicLine for more details.
ShadowColor
See ShadowColor under element GraphicLine for more details.
ShadowMode
See ShadowMode under element GraphicLine for more details.
ShadowOpacity
See ShadowOpacity under element GraphicLine for more details.
ShadowXOffset
See ShadowXOffset under element GraphicLine for more details.
ShadowYOffset
See ShadowYOffset under element GraphicLine for more details.
StrokeAlignment
See StrokeAlignment under element GraphicLine for more details.
StrokeColor
See StrokeColor under element GraphicLine for more details.
StrokeTint
See StrokeTint under element GraphicLine for more details.
StrokeType
See StrokeType under element GraphicLine for more details.
StrokeWeight
See StrokeWeight under element GraphicLine for more details.
#10084 Package For GoLive
111
#10084 Package For GoLive
aid:Sound
TextWrapPreferences
See element TextWrapPreference for more details.
aid:Sound
Description
The element aid:Sound represents a sound page item. Sound is a new type of page item in
InDesign CS, it is represented by the kSoundPageItemBoss, which is based on
kMediaPageItemBoss. kMediaPageItemBoss is based on kSplineItemBoss, so the sound page
item possesses several attributes that are common to spline page item.
Example
<aid:Sound aid:Name="c_caffeine.wav"
aid:FilePath="c_E:\PFG\Basic Pub Folder\Links\caffeine.wav"
aid:PlayOnPageTurn="b_f" aid:DoNotPrintPoster="b_f"
aid:PosterFile="c_E:\PFG\Basic Pub
Folder\Links\StandardSoundPoster.jpg"
aid:PosterType="e_xpFb" aid:EmbedInPDF="b_t"
aid:AssociatedXMLElement="ro_n" aid:BlendMode="e_norm"
aid:Opacity="d_40590000~0" aid:KnockoutGroup="b_f"
aid:IsolateBlending="b_f" aid:ShadowMode="e_none"
aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_ua6.TextWrapPreference[1]"
aid:OverriddenMasterPageItem="o_n"
aid:AllPageItems="ry_1_o_ua8"
aid:LocalDisplaySetting="e_Dflt" aid:Overridden="rb_f"
aid:ItemLayer="o_u77" aid:Nonprinting="b_f"
aid:Locked="b_f"
aid:ItemGeometry="x_19_l_1_l_4_l_2_d_0~0_d_0~0_l_2_d_0~0_d_
40498000~0_l_2_d_404c5555~55555556_d_40498000~0_l_2_d_404c5
555~55555556_d_0~0_b_f_d_0~0_d_0~0_d_404c5555~55555556_d_40
498000~0_d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_c02e0000~0
_d_c02b0000~0" aid:Id="rl_a6" aid:Label="c_"
aid:Self="rc_ua6">
<aid:TextWrapPreference aid:TextWrapType="e_none"
aid:Offset="e_none" aid:Inverse="b_f"
aid:ContourOptions="ro_ua6.TextWrapPreference[1].ContourOpt
112
#10084 Package For GoLive
aid:Sound
ion[1]" aid:Self="rc_ua6.TextWrapPreference[1]">
<aid:ContourOption aid:PhotoshopPathNames="rx_0"
aid:AlphaChannelPathNames="rx_0" aid:ContourType="e_sacp"
aid:IncludeInsideEdges="b_f" aid:ContourPathName="c_"
aid:Self="rc_ua6.TextWrapPreference[1].ContourOption[1]"/>
</aid:TextWrapPreference>
</aid:Sound>
Attributes
TABLE 1.53 Attributes of aid:Sound
Attribute name
SummaryDefault
AllPageItems
All page items
required
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
DoNotPrintPoster
Does not print the sound poster
required
EmbedInPDF
Embed content in PDF
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
FilePath
The file path
required
Id
The object's unique id
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
Locked
Whether the item is locked
required
Name
The name of the sound
required
Nonprinting
Whether the page item is non-printing
required
Opacity
The opacity of the object
required
#10084 Package For GoLive
113
#10084 Package For GoLive
aid:Sound
Attribute name
SummaryDefault
Overridden
this page item originated on a master spread and was
later overridden
required
OverriddenMasterPageIte
m
The overridden master page item
required
PlayOnPageTurn
Play on page turn
required
PosterFile
Poster file
required
PosterType
Poster type
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
TextWrapPreferences
The text wrap preferences
required
AllPageItems
See AllPageItems under Layer element for more details.
AssociatedXMLElement
See AssociatedXMLElement under GraphicLine element for more details.
BlendMode
See BlendMode under GraphicLine element for more details.
DoNotPrintPoster
This represents a boolean. If True, InDesign does not print the sound poster. IMediaAttributes
aggregated on the kMediaPageItemBoss maintains this flag. IMediaAttributes::IsFlagSet() (use
IMediaAttributes::enDoNotPrintPoster as the target attribute) is used to get the boolean.
EmbedInPDF
This represents a boolean. If True, the media content is embedded in the PDF.
IMediaAttributes aggregated on the kMediaPageItemBoss maintains this flag.
IMediaAttributes::IsFlagSet() (use IMediaAttributes::enEmbedOnPDFExport as the target
attribute) is used to get the boolean.
114
#10084 Package For GoLive
aid:Sound
FeatherCornerType
See FeatherCornerType under GraphicLine element for more details.
FeatherMode
See FeatherMode under GraphicLine element for more details.
FeatherWidth
See FeatherWidth under GraphicLine element for more details.
FilePath
This represents the sound file path. IMediaContent aggregated on the kMediaPageItemBoss
maintains the media's file path. IMediaContent::GetMediaFilePath() is used to get the file path
in PMString, which is then output as a string in the XML.
Id
See Id under Image element for more details.
IsolateBlending
See IsolateBlending under GraphicLine element for more details.
ItemGeometry
See ItemGeometry under GraphicLine element for more details.
ItemLayer
See ItemLayer under GraphicLine element for more details.
KnockoutGroup
See KnockoutGroup under GraphicLine element for more details.
Label
See Label under GraphicLine element for more details.
LocalDisplaySetting
See LocalDisplaySetting under GraphicLine element for more details.
Locked
See Locked under GraphicLine element for more details.
Name
This Name represents the sound's title. IMediaAttributes aggregated on the
kMediaPageItemBoss maintains the media's title. IMediaAttributes::GetAttribute() (use
IMediaAttributes::enTitle as the target attribute) is used to get the title in PMString, which is
then output as a string in the XML.
Nonprinting
See Nonprinting under GraphicLine element for more details.
#10084 Package For GoLive
115
#10084 Package For GoLive
aid:Sound
Opacity
See Opacity under GraphicLine element for more details.
Overridden
See Overridden under Movie element for more details.
OverriddenMasterPageItem
See OverriddenMasterPageItem under GraphicLine element for more details.
PlayOnPageTurn
This represents a boolean. If True, the sound plays on page turn. IMediaAttributes aggregated
on the kMediaPageItemBoss maintains this flag. IMediaAttributes::IsFlagSet() (use
IMediaAttributes::enPlayOnPageTurn as the target attribute) is used to get the boolean.
PosterFile
This represents the sound's poster file path. IMediaContent aggregated on the
kMediaPageItemBoss maintains the poster file path. IMediaContent::GetPosterPath() is used
to get the file path in PMString, which is then output as a string in the XML.
PosterType
This represents the type of the sound poster. IMediaContent aggregated on the
kMediaPageItemBoss maintains the poster type information. IMediaContent::GetPosterType()
is used to get the type in IMediaAttributes::PosterType, an enum is assigned for each type using
the following table and output as an enum in the XML.
TABLE 1.54 Sound PosterType Enum
PosterType enum as defined in the it is output as the following enum
IMediaAttributes.h
in XML
IMediaAttributes::eNone
none
IMovieAttributes::eStandard
xpFb
IMovieAttributes::eProxyImage
Mpxy
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under GraphicLine element for more details.
ShadowBlurRadius
See ShadowBlurRadius under GraphicLine element for more details.
ShadowColor
See ShadowColor under GraphicLine element for more details.
116
#10084 Package For GoLive
aid:Spread
ShadowMode
See ShadowMode under GraphicLine element for more details.
ShadowOpacity
See ShadowOpacity under GraphicLine element for more details.
ShadowXOffset
See ShadowXOffset under GraphicLine element for more details.
ShadowYOffset
See ShadowYOffset under GraphicLine element for more details.
TextWrapPreferences
See TextWrapPreference element for more details.
aid:Spread
Description
The element aid:Spread represents a spread (kSpreadBoss) in an InDesign publication. A
spread is a collection of pages, one spread can have up to 10 pages in it.
Example
<aid:Spread
aid:FlattenerPreferences="ro_u7a.FlattenerPreference[1]"
aid:FlattenerOverride="e_Dflt" aid:KeepTogether="rb_f"
aid:Index="rl_1" aid:ShowMasterItems="b_t"
aid:PageCount="l_1" aid:BindingLocation="l_0"
aid:AppliedMaster="o_u81"
aid:AllPageItems="ry_f_o_ue1_o_ud0_o_ucc_o_ucb_o_uc7_o_uad_
o_uc5_o_uc1_o_uac_o_ua6_o_ua8_o_ua1_o_u9c_o_ua2_o_u98"
aid:Id="rl_7a" aid:Label="c_" aid:Self="rc_u7a">
Attributes
TABLE 1.55 Attributes of aid:Spread
Attribute name
SummaryDefault
AllPageItems
All page items
AppliedMaster
Master applied to this spread
required
BindingLocation
The spread binding location
required
#10084 Package For GoLive
117
#10084 Package For GoLive
aid:Spread
Attribute name
SummaryDefault
FlattenerOverride
Transparency flattener override option
required
FlattenerPreferences
Flattener preferences
required
Id
The object's unique id
Index
Index of the spread within its parent, the document.
KeepTogether
Whether the pages of the spread should stay together
required
Label
A label that can be set to any string
required
PageCount
The number of pages on the spread
required
Self
This object's UID
required
ShowMasterItems
Whether items on a master are displayed
required
AllPageItems
See AllPageItems under Layer element for more details.
AppliedMaster
See AppliedMaster under MasterSpread element for more details.
BindingLocation
This represents the spread binding location. The location is an int32 represented by an
IIntData (IID_IBINDINGLOCATION) on the kSpreadBoss. The integer is output as an 32-bit
long in the XML.
FlattenerOverride
You can set the flattener style to either the whole document (the "default style") or specific page
spreads (a "local style"). This represents the transparency flattener override applied to the
spread (if any). To apply a local flattener style, select one or more page spreads in the Page
palette and select from among the choices in the Spread Flattening menu in the Page palette
menu. kSpreadBoss has an add-in interface, IFlattenerSettings
(IID_IXPFLATTENERSETTINGS), which is responsible for managing the per-spread flattener
prefs. IFlattenerSettings::GetFlattenerOverrides returns an uint32, which is used to determine
what to output for this attribute value according to the logic in the following table.
TABLE 1.56 Flattener Override Enum
When the following condition is FlattenerOverride's value is output
true
as the following enum in XML
IFlattenerSettings::GetFlattenerOverrides
() returns 0
118
Dflt
#10084 Package For GoLive
aid:Spread
When the following condition is FlattenerOverride's value is output
true
as the following enum in XML
IFlattenerSettings::GetFlattenerOverrides
() returns
IFlattenerSettings::kOverrideEnable and
IFlattenerSettings::IsFlattenerEnabled()
returns kFalse
none
Everything other than the above 2
conditions
Cstm
FlattenerPreferences
This represents the transparency flattener preferences for the spread. See element
FlattenerPreference for more details.
Id
This represents a number identifying the object. In any InDesign session, all ids are unique. See
Id under element Image for more details.
Index
This represents the index of the spread within the document. ISpreadList is an interface
aggregated on the kDocBoss which contains the list of spreads UIDs (kSpreadBoss).
ISpreadList::GetSpreadIndex() returns the index of a given spread into the spread list. The
index is output as a 32-bit long and is one-based in the XML.
KeepTogether
This represents a boolean. If true, the pages of the spread should stay together when pages are
added or removed before the spread. InDesign has a terminology for this type of spread, it's
called "island spread". To create an island spread, select a spread and then choose Keep Spread
Together from the Page palette menu. An IBoolData (IID_IISLANDSPREAD) on the
kSpreadBoss is responsible for keeping track of this boolean.
Label
This represents a property that can be set to any string (up to 32Kb of text). See Label under
element GraphicLine for more details.
PageCount
This represents the number of pages on the spread. ISpread on the kSpreadBoss keep tracks of
the page counts on the spread. ISpread ::GetNumPages() is used to get the count and it is
output as a 32-bit long in the XML.
Self
This represents the UID of this object itself.
#10084 Package For GoLive
119
#10084 Package For GoLive
aid:SpreadList
ShowMasterItems
This represents a boolean. If true, display items on the master spread. The boolean is managed
by an interface IMasterElementsDrawSetting (IID_IDRAWMASTERELEMENTS) which is
aggregated on the kSpreadBoss.
aid:SpreadList
Description
The element aid:SpreadList represents a list of element Spread.
aid:TextFrame
Description
The element aid:TextFrame represents a text frame. A typical text frame in InDesign usually is
composed of kSplineItemBoss, kMultiColumnItemBoss, and kFrameItemBoss. If we are
looking at a multiple columns text frame, each column of text is contained within a frame item
(kFrameItemBoss). All columns belonging to a particular frame are contained within a
multicolumn item (kMultiColumnItemBoss), and a multicolumn item is contained within a
spline item (kSplineItemBoss). Please refer to the Text chapter of the InDesign programming
guild for detailed information on text frame.
Example
<aid:TextFrame aid:ParentStory="ro_ub0"
aid:StartTextFrame="ro_uad" aid:EndTextFrame="ro_uad"
aid:TextFrameIndex="rl_1" aid:Index="rl_1"
aid:Overflows="rb_f" aid:PreviousTextFrame="o_n"
aid:NextTextFrame="o_n"
aid:TextFramePreferences="ro_uad.TextFramePreference[1]"
aid:ContentType="e_~sep~65745f74"
aid:AssociatedXMLElement="ro_n" aid:BlendMode="e_norm"
aid:Opacity="d_40590000~0" aid:KnockoutGroup="b_f"
aid:IsolateBlending="b_f" aid:ShadowMode="e_none"
aid:ShadowBlendMode="e_xpMb"
aid:ShadowXOffset="d_401c0000~0"
aid:ShadowYOffset="d_401c0000~0"
aid:ShadowBlurRadius="d_40140000~0" aid:ShadowColor="o_u8"
aid:ShadowOpacity="d_4052c000~0" aid:FeatherMode="e_none"
aid:FeatherWidth="d_40220000~0"
aid:FeatherCornerType="e_xpCc"
aid:TextWrapPreferences="ro_uad.TextWrapPreference[1]"
120
#10084 Package For GoLive
aid:TextFrame
aid:OverriddenMasterPageItem="o_n"
aid:AllPageItems="ry_2_o_uc5_o_uc1"
aid:LocalDisplaySetting="e_Dflt" aid:FillColor="o_u11"
aid:FillTint="d_bff00000~0" aid:Overridden="rb_f"
aid:StrokeWeight="u_3ff00000~0"
aid:MiterLimit="d_40100000~0" aid:EndCap="e_bcap"
aid:EndJoin="e_mjon" aid:StrokeType="e_sold"
aid:LeftLineEnd="e_none" aid:RightLineEnd="e_none"
aid:StrokeColor="o_u11" aid:StrokeTint="d_bff00000~0"
aid:CornerEffect="e_none" aid:CornerRadius="d_40280000~0"
aid:GradientFillStart="x_2_u_40733168~152f3556_u_407ab4e5~3
a68c866" aid:GradientFillLength="u_0~0"
aid:GradientFillAngle="d_0~0"
aid:GradientStrokeStart="x_2_u_40733168~152f3556_u_407ab4e5
~3a68c866" aid:GradientStrokeLength="u_0~0"
aid:GradientStrokeAngle="d_0~0" aid:ItemLayer="o_u77"
aid:Nonprinting="b_f" aid:GapTint="d_bff00000~0"
aid:StrokeAlignment="e_stAC" aid:Locked="b_f"
aid:ItemGeometry="x_19_l_1_l_4_l_2_d_c070e000~0_d_c04ffca8~
7bdf1350_l_2_d_c070e000~0_d_4051d715~c1078914_l_2_d_4070e00
0~0_d_4051d715~c1078914_l_2_d_4070e000~0_d_c04ffca8~7bdf135
0_b_f_d_c070e000~0_d_c04ffca8~7bdf1350_d_4070e000~0_d_4051d
715~c1078914_d_3ff00000~0_d_0~0_d_0~0_d_3ff00000~0_d_407331
68~152f3556_d_403f4e53~a68c8660" aid:Id="rl_ad"
aid:Label="c_" aid:Self="rc_uad">
Attributes
TABLE 1.57 Attributes of aid:TextFrame
Attribute name
SummaryDefault
AllPageItems
All page items
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ContentType
The type of content
required
CornerEffect
The type of corner effect on the object
required
CornerRadius
The radius of the corner
required
EndCap
The appearance of both ends of an open path
required
EndJoin
The appearance of the stroke at corner points
required
EndTextFrame
The last text frame in the thread
required
#10084 Package For GoLive
121
#10084 Package For GoLive
aid:TextFrame
122
Attribute name
SummaryDefault
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
FillColor
The fill color
required
FillTint
The override of the fill's tint percentage (-1 indicates no
override)
required
GapTint
Gap tint for the page item
required
GradientFillAngle
Angle of a linear gradient on the fill
required
GradientFillLength
Length of ramp for a linear gradient or radius of a radial
gradient on the fill
required
GradientFillStart
Center point for a radial gradient or starting point for a
linear gradient on the fill
required
GradientStrokeAngle
Angle of a linear gradient on the stroke
required
GradientStrokeLength
Length of ramp for a linear gradient or radius of a radial
gradient on the stroke
required
GradientStrokeStart
Center point for a radial gradient or starting point for a
linear gradient on the stroke
required
Id
The object's unique id
Index
Index of the text frame within its parent
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
ItemLayer
The layer the object is on
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LeftLineEnd
A shape, such as an arrowhead, on the left end of an
open path.
required
LocalDisplaySetting
The display settings for this page item
required
Locked
Whether the item is locked
required
MiterLimit
When a corner point switches from a mitered (pointed)
join to a beveled (squared-off) join
required
NextTextFrame
next text frame in the thread
required
Nonprinting
Whether the page item is non-printing
required
#10084 Package For GoLive
aid:TextFrame
Attribute name
SummaryDefault
Opacity
The opacity of the object
Overflows
Whether the frame has overset text. When true, there is
more text in the story but no remaining text frames in
which to place itl
OverprintFill
Whether to overprint the fill
OverprintStroke
Whether to overprint the stroke
Overridden
this page item originated on a master spread and was
later overridden
OverriddenMasterPageIte
m
The overridden master page item
OverriddenPageItemProp
s
The overridden properties on the page item
ParentStory
The related story
required
PreviousTextFrame
The previous text frame in the thread
required
RightLineEnd
A shape, such as an arrowhead, on the right end of an
open path
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
StartTextFrame
The first text frame in the thread
required
StrokeAlignment
The stroke alignment for the page item
required
StrokeColor
The stroke color
required
StrokeTint
The override of the stroke's tint percentage (-1 indicates
no override)
required
StrokeType
The stroke type
required
StrokeWeight
The weight (in points) to apply to the stroke of the line
required
TextFrameIndex
Index of the text frame in its thread of linked frames
required
#10084 Package For GoLive
required
required
123
#10084 Package For GoLive
aid:TextFrame
Attribute name
SummaryDefault
TextFramePreferences
Text Frame Preferences
required
TextWrapPreferences
The text wrap preferences
required
AllPageItems
See AllPageItems under element Layer for more details.
AssociatedXMLElement
See AssociatedXMLElement under element GraphicLine for more details.
BlendMode
See BlendMode under element GraphicLine for more details.
ContentType
See ContentType under element GraphicLine for more details.
CornerEffect
See CornerEffect under element GraphicLine for more details.
CornerRadius
See CornerRadius under element GraphicLine for more details.
EndCap
See EndCap under element GraphicLine for more details.
EndJoin
See EndJoin under element GraphicLine for more details.
EndTextFrame
This represents the last text frame in the thread. See the attribute StartTextFrame for more
details.
FeatherCornerType
See FeatherCornerType under element GraphicLine for more details.
FeatherMode
See FeatherMode under element GraphicLine for more details.
FeatherWidth
See FeatherWidth under element GraphicLine for more details.
FillColor
See FillColor under element GraphicLine for more details.
FillTint
See FillTint under element GraphicLine for more details.
124
#10084 Package For GoLive
aid:TextFrame
GapTint
See GapTint under element GraphicLine for more details.
GradientFillAngle
See GradientFillAngle under element GraphicLine for more details.
GradientFillLength
See GradientFillLength under element GraphicLine for more details.
GradientFillStart
See GradientFillStart under element GraphicLine for more details.
GradientStrokeAngle
See GradientStrokeAngle under element GraphicLine for more details.
GradientStrokeLength
See GradientStrokeLength under element GraphicLine for more details.
GradientStrokeStart
See GradientStrokeStart under element GraphicLine for more details.
Id
See Id under element Image for more details.
Index
This represents Index of the text frame within its parent. Right now it is exactly the same as the
TextFrameIndex.
IsolateBlending
See IsolateBlending under element GraphicLine for more details.
ItemGeometry
See ItemGeometry under element GraphicLine for more details.
ItemLayer
See ItemLayer under element GraphicLine for more details.
KnockoutGroup
See KnockoutGroup under element GraphicLine for more details.
Label
See Label under element GraphicLine for more details.
LeftLineEnd
See LeftLineEnd under element GraphicLine for more details.
LocalDisplaySetting
See LocalDisplaySetting under element GraphicLine for more details.
#10084 Package For GoLive
125
#10084 Package For GoLive
aid:TextFrame
Locked
See Locked under element GraphicLine for more details.
MiterLimit
See MiterLimit under element GraphicLine for more details.
NextTextFrame
This represents the next text frame in the thread. ITextColumnSizer on the
kMultiColumnItemBoss maintains the information about frame UIDs of column frames
(kFrameItemBoss). To get to the next linked frame,
ITextColumnSizer::GetLastTextFrameUID() is used to get to the last frame in the subject text
frame. Once the last frame (kFrameItemBoss) is obtained, its associated IFrameList can be
queried through its ITextFrame::QueryFrameList. Using IFrameList, one can get to the next
linked frame. The object output in the XML is actually the UID of the text frame's associated
graphic frame (kSplineItemBoss).
Nonprinting
See Nonprinting under element GraphicLine for more details.
Opacity
See Opacity under element GraphicLine for more details.
Overflows
This represents a boolean indicating whether the frame has overset text. When true, there is
more text in the story but no remaining text frames in which to place it. ITextUtils::IsOverset()
is used to check if the frame is overflow. The IsOverset() takes a ITextParcelList* as its
parameter, which is on the kFrameListBoss. To get to kFrameListBoss from a
kMultiColumnItemBoss, one can first get to IFrameList as described in NextTextFrame, then
ITextParcelList can be queried.
OverprintFill
See OverprintFill under element GraphicLine for more details.
OverprintStroke
See OverprintStroke under element GraphicLine for more details.
Overridden
See Overridden under element Movie for more details.
OverriddenMasterPageItem
See OverriddenMasterPageItem under element GraphicLine for more details.
OverriddenPageItemProps
See OverriddenPageItemProps under element GraphicLine for more details.
126
#10084 Package For GoLive
aid:TextFrame
ParentStory
This represents the related story. To get to the associated story from a graphic frame
(kSplineItemBoss), one should first get to its IGraphicFrameData, using its
GetTextContentUID() method to get to the multicolumn item (kMultiColumnItemBoss), then
the ITextFrame on the kMultiColumnItemBoss provides the link to the text story through the
ITextFrame::QueryTextModel() method.
PreviousTextFrame
This represents the previous text frame in the thread. ITextColumnSizer on the
kMultiColumnItemBoss maintains the information about frame UIDs of column frames
(kFrameItemBoss). To get to the previous linked frame,
ITextColumnSizer::GetFirstTextFrameUID() is used to get to the first frame in the subject text
frame. Once the first frame (kFrameItemBoss) is obtained, its associated IFrameList can be
queried through its ITextFrame::QueryFrameList. Using IFrameList, one can get to the
previous linked frame. The object output in the XML is actually the UID of the text frame's
associated graphic frame (kSplineItemBoss).
RightLineEnd
See RightLineEnd under element GraphicLine for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element GraphicLine for more details.
ShadowBlurRadius
See ShadowBlurRadius under element GraphicLine for more details.
ShadowColor
See ShadowColor under element GraphicLine for more details.
ShadowMode
See ShadowMode under element GraphicLine for more details.
ShadowOpacity
See ShadowOpacity under element GraphicLine for more details.
ShadowXOffset
See ShadowXOffset under element GraphicLine for more details.
ShadowYOffset
See ShadowYOffset under element GraphicLine for more details.
StartTextFrame
This represents the first text frame in the thread. IFrameList on the kFrameListBoss manages
all the frames through which the story is displayed. ITextFrame on the kMultiColumnItemBoss
#10084 Package For GoLive
127
#10084 Package For GoLive
aid:TextFramePreference
has the bridge method QueryFrameList() to get to kFrameListBoss and its IFrameList, which
has the method GetNthFrameUID() to get to any frame associated with the thread. In the
element ParentStory, we discussed how to get to the kMultiColumnItemBoss from the outside
spline. Note that once the text frame is reached, the UID of its associated kSplineItemBoss is
used to output as an object in the XML.
StrokeAlignment
See StrokeAlignment under element GraphicLine for more details.
StrokeColor
See StrokeColor under element GraphicLine for more details.
StrokeTint
See StrokeTint under element GraphicLine for more details.
StrokeType
See StrokeType under element GraphicLine for more details.
StrokeWeight
See StrokeWeight under element GraphicLine for more details.
TextFrameIndex
This represents the index of the text frame in its thread of linked frames. Given a multicolumn
frame, ITextUtils ::GetMultiColFrameIndex() can be used to return the index of a multicolumn
frame in its thread. It is output as a one-based 32-bit long in the XML.
TextFramePreferences
See element TextFramePreference for more details.
TextWrapPreferences
See element TextWrapPreference for more details.
aid:TextFramePreference
Description
The element aid:TextFramePreference represents Text frame preferences as seen in the Text
Frame Options dialog. The preferences can be set in a document/workspace level or it can be
overridden in the individual text frame level. The document/workspace wide preferences are
mainly managed by the ITextOptions aggregated on the kDocWorkspaceBoss and the
kWorkspaceBoss. The local preferences are managed by the various interfaces aggregated on
the text frame (kMultiColumnItemBoss and kSplineItemBoss).
128
#10084 Package For GoLive
aid:TextFramePreference
Example
<aid:TextFramePreference aid:TextColumnCount="l_1"
aid:TextColumnGutter="u_40280000~0"
aid:TextColumnFixedWidth="u_4080e000~0"
aid:UseFixedColumnWidth="b_f"
aid:InsetSpacing="x_4_u_0~0_u_0~0_u_0~0_u_0~0"
aid:FirstBaselineOffset="e_MAso"
aid:MinimumFirstBaselineOffset="u_0~0"
aid:VerticalJustification="e_top"
aid:VerticalThreshold="u_0~0" aid:IgnoreWrap="b_f"
aid:Self="rc_u98.TextFramePreference[1]"/>
Attributes
TABLE 1.58 Attributes of aid:TextFramePreference
Attribute name
SummaryDefault
FirstBaselineOffset
The distance between the baseline of the text and the
top inset of the frame or cell
required
IgnoreWrap
Whether text wrap on this layer will be ignored if the
layer is hidden
required
InsetSpacing
The text inset of the text frame
required
MinimumFirstBaselineOf
fset
The minimum distance in points between the baseline
of the text and the top inset of the frame or cell
required
Self
This object's UID
required
TextColumnCount
The number of columns in the text frame
required
TextColumnFixedWidth
The fixed column width of the text frame
required
TextColumnGutter
The distance between the columns of the text frame
required
UseFixedColumnWidth
Whether the columns of the text frame are a fixed width
required
VerticalJustification
The vertical justification alignment
required
VerticalThreshold
The maximum amount of vertical space between two
paragraphs
required
FirstBaselineOffset
This represents the method used to calculate the distance between the first baseline of text in
the text frame and the top inset of the text frame. For document wide prefs, it is managed by
the ITextOptions and the accessor GetFirstLineOffsetMetric() is used to get the attribute value
in one of the enum FirstLineOffsetMetric as defined in the CTextEnum.h. For override, the
offset is managed by the ITextFrame on the kMultiColumnItemBoss, and the accessor
#10084 Package For GoLive
129
#10084 Package For GoLive
aid:TextFramePreference
GetFirstLineOffsetMetric() is used to get the offset enum. The enum in the
FirstLineOffsetMetric is converted to a 4-characters enum as shown in the following table.
TABLE 1.59 FirstLineOffsetMetric Enum
FirstLineOffsetMetric enum as de- it is output as the following enum
fined in the CTextEnum.h
in XML
kFLOLeading
MLdo
kFLOAscent
MAso
kFLOCapHeight
MCHo
kFLOEmBoxHeight
MEHo
kFLOxHeight
MxHo
kFLOFixedHeight
MFHo
IgnoreWrap
This represents a boolean. If true, the text in the text frame ignores the text wrap of other
objects. For document wide prefs, the setting is managed by the ITextOptions and the accessor
GetIgnoreTextWrap() is used to get the boolean. For override, the setting is managed by the
IBoolData (IID_IIGNOREWRAP) on the kMultiColumnItemBoss, and the accessor GetBool()
is used to get the boolean.
InsetSpacing
This represents the text inset of the text frame. For rectangular text frames, this property
contains a four-item array; for non-rectangular text frames, the property contains a single
value. For document wide prefs, the inset is managed by the ITextOptions and the accessor
GetFrameInsets() is used to get the insets values in PMReal. The insets are kept as 4 separate
PMReal values for top, left, bottom, and right edge in ITextOptions. For override, the inset is
managed by the ITextInset on the kPageItemBoss (the base boss class for text frame), if the text
frame's shape is rectangle (IPolygonConverter can be used to check the shape), then the
accessor ITextInset ::GetRectInset() is used to get the 4 separate insets in PMReal. If the text
frame is not rectangle, then ITextInset::GetInset() is used to get the single inset in PMReal. The
inset values are converted into an Unit based on ScriptData::kXCoordinate for left, right edge
and ScriptData::kYCoordinate for top, bottom edge before they are output in the order of top,
left, bottom, right in the XML.
MinimumFirstBaselineOffset
This represents the minimum distance in points between the baseline of the first line of text in
the text frame and the top inset of the text frame. For document wide prefs, it is managed by
the ITextOptions and the accessor GetMinFirstLineOffset() is used to get the attribute value in
PMReal. For override, the minimum offset is managed by the ITextFrame on the
kMultiColumnItemBoss, and the accessor GetMinFirstLineOffset() is used to get the offset in
PMReal. The PMReal type value is converted into an Unit based on ScriptData::kYCoordinate
before it is output in the XML.
130
#10084 Package For GoLive
aid:TextFramePreference
Self
This represents the UID of this object itself.
TextColumnCount
This represents the number of columns in the text frame. For document wide prefs, it is
managed by the ITextOptions and the accessor GetNumberOfFrameColumns() is used to get
the attribute value. For override, the column count is managed by the ITextColumnSizer on the
kMultiColumnItemBoss, and the accessor GetNumberOfColumns() is used to get the column
count. The value is output as a 32-bit long in the XML.
TextColumnFixedWidth
This represents the fixed column width of the text frame. For document wide prefs, it is
managed by the ITextOptions and the accessor GetFixedColumnWidth() is used to get the
attribute value in PMReal. For override, the column width is managed by the
ITextColumnSizer on the kMultiColumnItemBoss, and the accessor GetFixedWidth() is used
to get the column width in PMReal. The PMReal type value is converted into an Unit based on
ScriptData::kXCoordinate before it is output in the XML.
TextColumnGutter
This represents the distance between the columns of the text frame. For document wide prefs,
it is managed by the ITextOptions and the accessor GetFrameGutterWidth() is used to get the
attribute value in PMReal. For override, the gutter width is managed by the ITextColumnSizer
on the kMultiColumnItemBoss, and the accessor GetGutterWidth() is used to get the gutter
width in PMReal. The PMReal type value is converted into an Unit based on
ScriptData::kXCoordinate before it is output in the XML.
UseFixedColumnWidth
This represents a boolean. If true, the columns of the text frame are a fixed width. For
document wide prefs, the setting is managed by the ITextOptions and the accessor
GetUseFixedWidthColumns() is used to get the boolean. For override, the setting is managed
by the ITextColumnSizer on the kMultiColumnItemBoss, and the accessor
IsFixedColumnSizing() is used to get the boolean.
VerticalJustification
This represents The type of vertical justification applied to the text frame. For document wide
prefs, it is managed by the ITextOptions and the accessor GetVerticalJustification() is used to
get the attribute value in one of the enum VerticalJustification as defined in the CTextEnum.h.
For override, the vertical justification is managed by the ITextFrame on the
kMultiColumnItemBoss, and the accessor GetVerticalJustification() is used to get the
justification enum. The enum in the VerticalJustification is converted to a 4-characters enum as
shown in the following table.
#10084 Package For GoLive
131
#10084 Package For GoLive
aid:TextWrapPreference
TABLE 1.60 VerticalJustification Enum
VerticalJustification enum as de- it is output as the following enum
fined in the CTextEnum.h
in XML
kVJTop
top
kVJCenter
cent
kVJBottom
botm
kVJJustify
jstf
VerticalThreshold
This represents The maximum amount of vertical space between two paragraphs. For
document wide prefs, it is managed by the ITextOptions and the accessor
GetMaxVJInterParaSpace() is used to get the attribute value in PMReal. For override, the
vertical threshold is managed by the ITextFrame on the kMultiColumnItemBoss, and the
accessor GetMaxVJInterParaSpace() is used to get the threshold in PMReal. The PMReal type
value is converted into an Unit based on ScriptData::kYCoordinate before it is output in the
XML.
aid:TextWrapPreference
Description
The element aid:TextWrapPreference represents the text wrap preferences. Any independent
object in an InDesign publication can have a text wrap applied to it. The main text wrap UI is
the Text Wrap palette. Text wrap is implemented using standoffs. A standoff defines the
relationship a page item has with text. It describes whether there should be text wrap, and if so,
to what degree. There are 4 relevant interfaces added-in to kPageItemBoss that is standoff
related, they are IStandOff, IStandOffData, IPolygonConverter, and ITextInset. The high level
API ITextWrapFacade can be used to get/set the text wrap setting of a page item.
Example
<aid:TextWrapPreference aid:TextWrapType="e_none"
aid:Offset="e_none" aid:Inverse="b_f"
aid:ContourOptions="ro_ua0.TextWrapPreference[1].ContourOpt
ion[1]" aid:Self="rc_ua0.TextWrapPreference[1]">
<aid:ContourOption aid:PhotoshopPathNames="r0_"
aid:AlphaChannelPathNames="r0_" aid:ContourType="0_"
aid:IncludeInsideEdges="0_" aid:ContourPathName="0_"
aid:Self="rc_ua0.TextWrapPreference[1].ContourOption[1]"/>
</aid:TextWrapPreference>
132
#10084 Package For GoLive
aid:TextWrapPreference
Attributes
TABLE 1.61 Attributes of aid:TextWrapPreference
Attribute name
SummaryDefault
ContourOptions
A contour option
required
Inverse
Whether to invert the text wrap thus creating an insideout wrap
required
Offset
The amount of offset to move the wrap away from the
edges of the frame
required
Self
This object's UID
required
TextWrapType
The type of text wrap on the object
required
ContourOptions
This represents The contour options. See ContourOption element for more details.
Inverse
This represents a boolean. If true, invert the text wrap (creating an inside-out wrap).
ITextWrapFacade::GetInvert() can be used to get the GetInvert off a page item
Offset
This represents the amount of offset to move the wrap away from the edges of the frame. The
value of the offset attribute varies depends on the type of the text wrap. But the offset is
obtained via the IStandOffData (GetMargin) off a kPageItemBoss. The following table shows
the output value for different wrap type.
TABLE 1.62 Text Wrap Type Enum
When the text wrap type is
its wrap margin is output as the following in XML
kBand
list of 2 Units. PMRect::kMiddleTop and
PMRect::kMiddleBottom are passed into
IStandOffData::GetMargin to get the 2
margins in that order. The margins then
are converted into Unit based on the
ScriptData::kYCoordinate.
kNextFrame
1 Unit value. PMRect::kMiddleTop is
passed into IStandOffData::GetMargin(),
and the margin is converted into an Unit
based on the ScriptData::kYCoordinate.
#10084 Package For GoLive
133
#10084 Package For GoLive
aid:TextWrapPreference
When the text wrap type is
its wrap margin is output as the following in XML
kBothSides
list of 4 Units. PMRect::kMiddleTop,
PMRect::kLeftMiddle,
PMRect::kMiddleBottom, and
PMRect::kRightMiddle are passed into
IStandOffData::GetMargin to get the 4
margins in that order. The top/bottom
margins then are converted into Unit
based on the ScriptData::kYCoordinate.
And the left/right margins are converted
into Unit based on the
ScriptData::kXCoordinate
kManualContour
same as kBothSides if the object shape is
rectangle. Otherwise, it is a single Unit
value similar to kNextFrame
kNone
output as an enum 'none'
Self
This represents the UID of this object itself.
TextWrapType
This represents the type of text wrap applied to the object. ITextWrapFacade::GetMode() can
be used to get the wrap type of a page item, which is one of the IStandOff::mode defined in the
IStandOff.h. Note that we cannot apply margin to a user defined standoff.The enum in the
IStandOff::mode is converted to a 4-characters enum as shown in the following table.
TABLE 1.63 Standoff Mode Enum
IStandOff::mode enum as defined it is output as the following enum
in the IStandOff.h
in XML
134
kBand
band
kNextFrame
nxfr
kBothSides
bsds
kManualContour
mcon
kNone
none
user defined standoff
(IStandOffItemData::IsUserPointList()
== kTrue)
usmd
#10084 Package For GoLive
aid:WMF
aid:WMF
Description
The element aid:WMF represents a WMF page item, which corresponds to the kWMFItem
boss class. The WMF element and the Image element share many same attributes They follow
exactly the same format as explained in the Image element. And all the attributes are obtained
the same way too.
Attributes
TABLE 1.64 Attributes of aid:WMF
Attribute name
SummaryDefault
AssociatedXMLElement
Returns the associated XML element
required
BlendMode
The blend mode used to combine the object's color
with the background
required
ClippingPath
The clipping path settings
required
FeatherCornerType
The type of feathering to apply
required
FeatherMode
The feather mode
required
FeatherWidth
The width of the feathering
required
IsolateBlending
Indicates whether the object should blend in isolation
required
ItemGeometry
Geometric information in inner coordinates
required
KnockoutGroup
Indicates whether the object is a knockout group
required
Label
A label that can be set to any string
required
LocalDisplaySetting
The display settings for this page item
required
Opacity
The opacity of the object
required
Self
This object's UID
required
ShadowBlendMode
The blend mode to use for drawing the shadow
required
ShadowBlurRadius
The radius of the blur to apply to the shadow
required
ShadowColor
The color to apply to the shadow
required
ShadowMode
The shadow mode
required
ShadowOpacity
The opacity of the shadow
required
ShadowXOffset
The horizontal offset of the shadow
required
ShadowYOffset
The vertical offset of the shadow
required
#10084 Package For GoLive
135
#10084 Package For GoLive
aid:WMF
Attribute name
SummaryDefault
TextWrapPreferences
The text wrap preferences
AssociatedXMLElement
See AssociatedXMLElement under element Image for more details.
BlendMode
See BlendMode under element Image for more details.
ClippingPath
See ClippingPath under element Image for more details.
FeatherCornerType
See FeatherCornerType under element Image for more details.
FeatherMode
See FeatherMode under element Image for more details.
FeatherWidth
See FeatherWidth under element Image for more details.
IsolateBlending
See IsolateBlending under element Image for more details.
ItemGeometry
See ItemGeometry under element Image for more details.
KnockoutGroup
See KnockoutGroup under element Image for more details.
Label
See Label under element Image for more details.
LocalDisplaySetting
See LocalDisplaySetting under element Image for more details.
Opacity
See Opacity under element Image for more details.
Self
This represents the UID of this object itself.
ShadowBlendMode
See ShadowBlendMode under element Image for more details.
136
required
#10084 Package For GoLive
References
ShadowBlurRadius
See ShadowBlurRadius under element Image for more details.
ShadowColor
See ShadowColor under element Image for more details.
ShadowMode
See ShadowMode under element Image for more details.
ShadowOpacity
See ShadowOpacity under element Image for more details.
ShadowXOffset
See ShadowXOffset under element Image for more details.
ShadowYOffset
See ShadowYOffset under element Image for more details.
TextWrapPreferences
See TextWrapPreferences under element Image for more details.
References
•
Real World Adobe InDesign 2; Olav Martin Kvern and David Blatner, Peachpit Press
•
Adobe InDesign CS Scripting Guide; Adobe Systems Inc.
•
Making Your Plug-In Scriptable; Adobe InDesign CS/InCopy CS Software Development
Kit technote, Adobe Systems Inc.
•
http://www.w3.org/
#10084 Package For GoLive
137
#10084 Package For GoLive
References
138