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