Macromedia InDesign - CS6 Porting Guide

ADOBE® INDESIGN® CS6
ADOBE INDESIGN CS6
PORTING GUIDE
2012 Adobe Systems Incorporated. All rights reserved.
Document Update Status
CS6 All new Content in process for CS6.
Adobe® InDesign® CS6 Porting Guide
The content of this guide 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 the informational content contained in this guide.
Please remember that existing artwork or images that you may want to include in your project may be protected under copyright law. The unauthorized incorporation of such material into your new work could be a violation of the rights of the copyright owner. Please be sure to obtain any permission required from the copyright owner.
Any references to company names in sample templates are for demonstration purposes only and are not intended to refer to any actual organization.
Adobe, the Adobe logo, Adobe Bridge, Creative Suite, InCopy, InDesign, Reader, and Version Cue are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Microsoft and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Macintosh and Mac OS are trademarks of Apple Computer, Incorporated, registered in the United States and other countries. All other trademarks are the property of their respective owners.
Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA. Notice to U.S. Government End Users. The Software and Documentation are “Commercial Items,” as that term is defined at 48 C.F.R. §2.101, consisting of “Commercial Computer Software” and “Commercial Computer Software Documentation,” as such terms are used in 48 C.F.R. §12.212 or 48 C.F.R. §227.7202, as applicable. Consistent with 48 C.F.R. §12.212 or 48 C.F.R. §§227.7202-1 through
227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished-rights reserved under the copyright laws of the United States. Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA. For U.S. Government End Users, Adobe agrees to comply with all applicable equal opportunity laws including, if appropriate, the provisions of Executive Order 11246, as amended, Section 402 of the Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212), and Section 503 of the Rehabilitation Act of 1973, as amended, and the regulations at 41 CFR Parts 60-1 through 60-60, 60-250, and 60-741. The affirmative action clause and regulations contained in the preceding sentence shall be incorporated by reference.
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1 What’s New in the InDesign CS6 Plug-In SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Macintosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
C++ IDE Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Porting Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Liquid Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Linked Content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Content Dropper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Persistent Text Fitting Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Middle Eastern Language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Create Alternate Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
PDF Forms Within InDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Grayscale PDF Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Using EVE for InDesign Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Benefits of Using EVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
EVE Directives and Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Converting Dialogs to Use EVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Converting Using the EVE Conversion Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Manually Converting to EVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Conversion Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Debugging the Converted Dialog in InDesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
EVE Converter Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Conversion Example: basicdialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Conversion Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Conversion Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Adjusting the Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Conversion Example: Selectable Dialogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Additional Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3
4
3 CS6 Porting Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Main Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
New ODFRC Compile Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Porting Recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
CControlView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
CGraphicFrameShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
CGraphicPlaceBehavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CHandleShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CPMDataObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CPanorama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CPathShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CTUnicodeTranslator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
CXMLOutStream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Façade::IFrameContentFacade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Façade::IGeometryFacade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Façade::ISharedContentFacade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Façade::ITransformFacade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Geometry::ResizeValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IAutoFlowCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
ICellContent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IClipboardController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IDFile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IDocSetupCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IDocumentPresentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IDocumentUIState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IExportTagValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
IFormFieldSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
IFramePrefsCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
IFullScreenRestoreData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
IGenericSettingsExportCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
IGeometrySuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IGlyphUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IGlyphUtilsME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IGuideDataSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IGuideUIUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IInCopyFileInfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IJustificationStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ILayoutControlData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ILayoutUIUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ILink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ILinksUIUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
IMenuManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
IMoveReferencePointCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
IMultiColumnItemData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
INewGuideCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
INewSpreadCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
INoteUIUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IObjectExportOptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IObjectExportOptionsData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IObjectExportOptionsSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IOpenLayoutPresentationCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . 38
5
IPMDataObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IPageCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
IPageSetupPrefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IPageSizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IPagesPanelPrefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IPagesPanelPrefsCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IPanorama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IProxyWidgetAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
IRectListData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
IRefPointUIUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
IRefPointUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
IReferencePointData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
IReferencePointSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISaveFileDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISectionList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISelectionFilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISetAdobeMediaMgmtMDCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISetFittingOptionsCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
IShape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISharedContentSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ISpread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ISummaryUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ITextParcelList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ITinDocumentData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ITransformPanelPrefs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ITransformPanelPrefsCmdData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
ITransformSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
IWaxAnchorPt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
IWidgetUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
IWindowUtils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
MColorContext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
PMString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Transform::TransformOrigin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
metadata::ResourceRef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Introduction

This document describes how to update your SDK plug-in code and development environments for the Adobe® InDesign® CS6 family of applications. It details changes in the public API and other aspects of the SDK since the CS5.5 release. It contains the following:
Chapter 1, “What’s New in the InDesign CS6 Plug-In SDK,” summarizes the changes in CS6 since CS5.5.
Chapter 3, “CS6 Porting Guide,” provides more details about changes to plug-in code and
development environments for CS6, and helps you to port your plug-ins from CS5.5 to CS6.

Termi no lo gy

<SDK> refers to the installation location for the InDesign plug-in SDK.
<Scripting SDK> refers to the installation location for the InDesign scripting SDK.
6
1

What’s New in the InDesign CS6 Plug-In SDK

For the benefit of previous users, this chapter summarizes the changes to the SDK in the CS6 release:
“System Requirements” on page 7
“C++ IDE Requirements” on page 8
“Porting Content” on page 8
“Liquid Layout” on page 8
“Linked Content” on page 8
“Content Dropper” on page 9
“Persistent Text Fitting Option” on page 9
“Middle Eastern Language Support” on page 9
“Create Alternate Layout” on page 11
“PDF Forms Within InDesign” on page 11
“Grayscale PDF Export” on page 11

System Requirements

Windows

Intel® Pentium® 4 or AMD Athlon® 64 processor
1 GB of RAM (2 GB recommended)
One of the following:
Microsoft® Windows® XP with Service Pack 2 (Service Pack 3 recommended)
Windows Vista® Home Premium, Business, Ultimate, or Enterprise with Service Pack 1
Windows 7
N
OTE: Installation is not supported on volumes that use a case-sensitive file system or on removable
flash-based storage devices.

Macintosh

Multicore Intel® processor
Mac OS® X v10.6
1 GB of RAM (2 GB recommended)
7
CHAPTER What’s New in the InDesign CS6 Plug-In SDK C++ IDE Requirements 8

C++ IDE Requirements

On Windows®, the required C++ development environment is now Visual Studio 2010 with Service Pack 1 and Microsoft® Windows XP Service Pack 2 or higher.
On Mac OS®, the required C++ development environment is XCode 3.2.5 and Mac OS X 10.6.x.

Porting Content

There are some new public APIs in CS6.
See <SDK>/docs/references/APIAdvisor_InDesign_CS5.5_vs_CS6.html for a diff between the CS5.5 and CS6 APIs.

Liquid Layout

By using layout rules, you can create one InDesign file with one set of physical pages that display their content suitably on different devices with different sizes and orientations. You can optionally control the appearance of the pages for each size and orientation. The Liquid Layout panel is the primary way in which to interact with these features.
The InDesign CS6 scripting SDK includes the following, which demonstrate how to use related APIs:
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/documents/LiquidLayout.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/documents/AddGuides.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/documents/SetConstraints.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/LiquidLayout.vbs
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/AddGuides.vbs
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/SetConstraints.vbs
<Scripting SDK>>/indesign/scriptingguide/scripts/applescript/documents/LiquidLayout.applescript
<Scripting SDK>/indesign/scriptingguide/scripts/applescript/documents/AddGuides.applescript
<Scripting SDK>/indesign/scriptingguide/scripts/applescript/documents/SetConstraints.applescript

Linked Content

Background: InDesign CS5.5 introduced linked stories, which made it easier to manage multiple versions of the same story or text content in the same document. You designate a story as a parent, then place the same story at other places in the document as child stories. Whenever you update the parent story, the child stories can be updated to synchronize with the parent story.
New: In InDesign CS6, you can also link simple page items, images, interactivity and groups, and so on, and you can make links from one document to another. You can manage those links and even specify and manage differences between the linked parent and child.
The InDesign CS6 plug-in SDK includes the following related content:
CHAPTER What’s New in the InDesign CS6 Plug-In SDK Content Dropper 9
<SDK>/source/sdksamples/codesnippets/SnpManipulateTextFrame.cpp
<SDK>/source/sdksamples/codesnippets/SnpCreateAndManipulateSharedLink.cpp

Content Dropper

With this InDesign CS6 feature, you can copy the content from a file that is intended for printing and paste it into another document. With the content dropper, you can:
Grab a lot of content at one time—including stories, groups, and natively drawn objects—directly
from the page for placement elsewhere.
Save the content that has been grabbed, so the content is retained rather than temporary as it is with
the multiplace gun.
Clearly view what has been grabbed and work with some or all of it, in any order.
Drop the content into a different design in various ways.
The InDesign CS6 scripting SDK includes the following related content:
<Scripting SDK>/
indesign/scriptingguide/scripts/javascript/documents/ContentCollectorAndPlacer.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/ContentCollectorAndPlacer.vbs
<Scripting SDK>/
indesign/scriptingguide/scripts/applescript/documents/ContentCollectorAndPlacer.applescript

Persistent Text Fitting Option

Enabling Fit Frame to Content allows a graphic frame to automatically change size depending on its content. This option works only in basic graphical frames and text frames; it does not support more advanced text features, including mulitcolumn text frames, splits, and spans.
The InDesign CS6 scripting SDK includes the following, which demonstrate how to use related APIs:
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/text/PersistedTextFrameFill.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/text/PersistedTextFrameFill.vbs
<Scripting SDK>/indesign/scriptingguide/scripts/applescript/text/PersistedTextFrameFill.applescript

Middle Eastern Language Support

InDesign CS5 introduced Middle Eastern (ME) language support in the InDesign model and InDesign CS5.5 introduced user interface support. InDesign CS6 integrates all of the conditional code into the mainline codebase. The ME features provide support for Arabic, Hebrew, and Greek. Arabic and Hebrew are significant in that they compose right to left. In addition, CS6 adds some features, including diacritic coloring, diacritic positioning, and feature tracking.
The InDesign CS6 scripting SDK includes the following related content:
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/ChangeComposer.jsx
CHAPTER What’s New in the InDesign CS6 Plug-In SDK Middle Eastern Language Support 10
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/CreateStyleME.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/MECharacterAttributes.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/MENAFindAndReplaceText.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/MEParagraphAttributes.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/NumberingME.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/PageBinding.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/SpecialCharactersME.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/StoryDirection.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/javascript/TableDirection.jsx
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/ChangeComposer.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/CreateStyleME.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/MECharacterAttributes.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/MENAFindAndReplaceText.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/MEParagraphAttributes.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/NumberingME.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/PageBinding.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/SpecialCharactersME.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/StoryDirection.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/vbscript/TableDirection.vbs
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/ChangeComposer.applescript
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/CreateStyleME.applescript
<Scripting SDK>/
indesignserver/scriptingguide/scripts/applescript/MECharacterAttributes.applescript
<Scripting SDK>/
indesignserver/scriptingguide/scripts/applescript/MENAFindAndReplaceText.applescript
<Scripting SDK>/
indesignserver/scriptingguide/scripts/applescript/MEParagraphAttributes.applescript
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/NumberingME.applescript
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/PageBinding.applescript
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/SpecialCharactersME.applescript
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/StoryDirection.applescript
<Scripting SDK>/indesignserver/scriptingguide/scripts/applescript/TableDirection.applescript
CHAPTER What’s New in the InDesign CS6 Plug-In SDK Create Alternate Layout 11

Create Alternate Layout

Create Alternate Layout takes a range of existing pages with content and automatically creates linked copies of the content on a set of new pages within the same document. Use this when you need to create unique layouts for different orientations and device classes.
The InDesign Scripting SDK includes the following, which demonstrate how to use related APIs:
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/documents/CreateAlternateLayout.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/CreateAlternateLayout.vbs
<Scripting
SDK>/indesign/scriptingguide/scripts/applescript/documents/CreateAlternateLayout.applescript

PDF Forms Within InDesign

Historically, to create a PDF that contains form fields, you created the background in InDesign, saved the InDesign document as PDF, then opened it in Acrobat to apply form fields.
In InDesign CS6, you can apply text fields, radio buttons, signature fields, and so on directly to the InDesign document and export the document to PDF as a form with no additional Acrobat editing required, although you can edit the PDF form for additional functionality. This allows you to use InDesign’s layout and formatting features to design forms.
The InDesign CS6 scripting SDK includes the following related content:
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/documents/ExportInteractivePDFForm.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/ExportInteractivePDFForm.vbs
<Scripting
SDK>/indesign/scriptingguide/scripts/applescript/documents/ExportInteractivePDFForm.applescript

Grayscale PDF Export

An InDesign document that contains colors can now be exported directly to a grayscale PDF, for use with newspapers or other noncolor publishers. This avoids having to maintain both color and grayscale source files for the same document.
The InDesign CS6 scripting SDK includes the following related content:
<Scripting SDK>/indesign/scriptingguide/scripts/javascript/documents/GreyscalePDFforIDS.jsx
<Scripting SDK>/indesign/scriptingguide/scripts/vbscript/documents/GreyscalePDFforIDS.vbs
<Scripting
SDK>/indesign/scriptingguide/scripts/applescript/documents/GreyscalePDFforIDS.applescript
2

Using EVE for InDesign Dialogs

After you have laid out user interface elements such as dialog boxes, changing the layout is time-consuming because, even for a small change, you might need to recalculate the positioning, sizing, and alignment of all elements. The Adobe Express View Engine (EVE) helps resolve this by resizing widgets automatically based on their text or labels. This not only makes it quick and easy to make small changes to the layout, but it also eliminates the need for multiple .fr files for different locales (in most cases) when localizing applications.
With EVE, you lay out a user interface only once and then, given a correctly formed textual description of a dialog or palette, EVE dynamically generates the geometry of the user interface elements. With EVE, you create one resource file with the relative positioning and ordering of the widgets in a row-column manner. This saves the time of generating different resources and defining the actual positions of the widgets.
You can convert your existing InDesign dialogs and panels to use the automated EVE layout format, instead of using exact widget frame coordinates. This chapter explains how to use EVE and how to convert existing user interface elements.
This chapter contains:
“Prerequisites” on page 12
“Benefits of Using EVE” on page 12
“EVE Directives and Values” on page 13
“Converting Dialogs to Use EVE” on page 15
“Debugging the Converted Dialog in InDesign” on page 20
“EVE Converter Command” on page 20
“Conversion Example: basicdialog” on page 22
“Conversion Example: Selectable Dialogs” on page 28
“Additional Examples” on page 30

Prerequisites

Converting existing user interface elements to EVE is much easier if you use the EVE converter tool. The tool is located here:
<ID Plug-in SDK>/devtools/eveconverter/

Benefits of Using EVE

Laying out a dialog with EVE initially is no easier than laying it out the old way. The benefit comes when you have to modify a dialog, such as by as adding a new widget in the middle of the dialog. With EVE, you simply add the widget, and the shifting of all other widgets happens automatically.
12
CHAPTER Using EVE for InDesign Dialogs EVE Directives and Values 13
Because you no longer need localized versions of your .fr files, there is no longer a potential problem for localized views files to have different data than the English-language .fr files. And changing an English translation that is used in a dialog does not force you to edit the .fr file to make the new text fit.
Other benefits include:
In cases where text is different sizes on different operating systems, you no longer have to worry about
calculating extra whitespace.
English dialogs can be smaller because you do not need to leave room for anticipated localized text
being longer.
EVE eliminates problems with widgets that don’t quite line up correctly or text being chopped off
because EVE automatically resizes static text, buttons, check boxes, radio buttons, and drop-down lists.

EVE Directives and Values

By default, the EVEConverter sets a regular spacing (5 pixels) between widgets with the constant kEVERegularSpaceAfter, and the overall margins to a large margin (15 pixels) on the edges with kEVELargeMargin.
The spacing defines and sizes that EVE uses are as follows:
EVE Constant Pixel Height/Width
kEVENoSpaceAfter 0
kEVENoMargin 0
kEVESmallSpaceAfter 3
kEVERegularSpaceAfter 5
kEVESmallMargin 5
kEVELargeSpaceAfter 10
kEVERegularMargin 10
kEVEExtraLargeSpaceAfter 15
kEVELargeMargin 15
kEVEJumboSpaceAfter 20
The additional EVE content for a .fr file is defined in EVEInfo.fh in the SDK. Here’s a summary of the EVE directives:
Alignment: Possible values are:
kEVEAlignLeft: The default for everything except buttons.
kEVEAlignRight
kEVEAlignCenter
kEVEAlignFill: The default for buttons. This means to take up all the space in the parent container.
CHAPTER Using EVE for InDesign Dialogs EVE Directives and Values 14
kEVEDontAlignWidth: This means do not align to the width of the parent container.
Space After: Specifies how much empty space to leave between this widget and the next one.
Different widget types have different default values. Possible values are:
kEVENoSpaceAfter
kEVESmallSpaceAfter
kEVERegularSpaceAfter
kEVELargeSpaceAfter
kEVEExtraLargeSpaceAfter
kEVEJumboSpaceAfter
Child Arrangement: This is the most important aspect of EVE layout. Converting a dialog mainly
consists of figuring out the rows and columns in the dialog’s layout. Once those are correct, the rest is just details. These values are valid only for panels. Possible values are:
kEVEArrangeChildrenInRow
kEVEArrangeChildrenInColumn
kEVEArrangeChildrenStacked: This means to overlay different panels or controls with different
dimensions.
kEVEDontArrangeChildren: This means the panel widget is not to arrange the children at all. In this
case, you need to specify the coordinates for each child.
Child Alignment: These values are valid only for panels. They set the default alignment of children
that don’t provide their own alignment. Possible values are:
kEVEChildAlignLeft
kEVEChildAlignRight
kEVEChildAlignCenter
kEVEChildAlignFill
Child Space After: These values are valid only for panels. They set the space after for child widgets
that don’t specify their own. Possible values are:
kEVEChildNoSpaceAfter
kEVEChildSmallSpaceAfter
kEVEChildRegularSpaceAfter
kEVEChildLargeSpaceAfter
kEVEChildExtraLargeSpaceAfter
kEVEChildJumboSpaceAfter
Margin: Valid only for panels. This is is an inset from the edge of the panel to all the widgets. Mostly
used by top level dialog widgets and group panels. Possible values are:
Loading...
+ 30 hidden pages