InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IDigitalPublishingFacade.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Adobe Systems Inc.
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 
25 #ifndef __IDigitalPublishingFacade_h__
26 #define __IDigitalPublishingFacade_h__
27 
28 #include "DigitalPublishingID.h"
29 
30 #include "IDTime.h"
31 #include "MiniFolioOptions.h"
32 #include "Utils.h"
33 
34 class IDocument;
35 
36 #include <boost/shared_ptr.hpp>
37 
38 namespace id_digpub
39 {
40 
44 class Object;
45 typedef boost::shared_ptr<Object> ObjectPtr;
46 
47 }
48 
52 class DigitalPublishingFolio;
53 
57 class DigitalPublishingMetadata;
58 
60 
70 namespace Facade
71 {
73  {
74  public:
75  enum { kDefaultIID = IID_IDIGITALPUBLISHINGFACADE };
76 
80  virtual DigitalPublishingMetadata *CreateMetadata() const = 0;
81 
93  virtual ErrorCode SetMetadataDate(DigitalPublishingMetadata *metadata, DigitalPublishingDateTime const &date) const = 0;
94 
106  virtual ErrorCode SetMetadataUpdateDate(DigitalPublishingMetadata *metadata, DigitalPublishingDateTime const &date) const = 0;
107 
120  virtual ErrorCode SetMetadataFolioNumber(DigitalPublishingMetadata *metadata, WideString const &number) const = 0;
121 
133  virtual ErrorCode SetMetadataMagazineTitle(DigitalPublishingMetadata *metadata, WideString const &title) const = 0;
134 
146  virtual ErrorCode SetMetadataDescription(DigitalPublishingMetadata *metadata, WideString const &desc) const = 0;
147 
159  virtual ErrorCode SetMetadataCategory(DigitalPublishingMetadata *metadata, WideString const &category) const = 0;
160 
173  virtual ErrorCode SetMetadataArticleTitle(DigitalPublishingMetadata *metadata, WideString const &title) const = 0;
174 
187  virtual ErrorCode SetMetadataArticleAuthor(DigitalPublishingMetadata *metadata, WideString const &author) const = 0;
188 
202  virtual ErrorCode SetMetadataArticleKicker(DigitalPublishingMetadata *metadata, WideString const &kicker) const = 0;
203 
216  virtual ErrorCode SetMetadataArticleIsAdvertisement(DigitalPublishingMetadata *metadata, bool16 isAd) const = 0;
217 
232  static inline ErrorCode SetMetadataArticleHideFromTOC(DigitalPublishingMetadata *metadata, bool16 hideFromTOC)
233  {
235  ASSERT(dpFacade);
236 
237  return dpFacade->AddMetadataKeyValue( metadata,
238  WideString("hideFromTOC"),
239  WideString(hideFromTOC ? "true" : "false")
240  );
241  }
242 
254  static inline ErrorCode SetMetadataArticleIntent(DigitalPublishingMetadata *metadata, WideString const &intent)
255  {
257  ASSERT(dpFacade);
258 
259  return dpFacade->AddMetadataKeyValue( metadata,
260  WideString("intent"),
261  intent
262  );
263  }
264 
276  static inline ErrorCode SetMetadataArticleSection(DigitalPublishingMetadata *metadata, WideString const &section)
277  {
279  ASSERT(dpFacade);
280 
281  return dpFacade->AddMetadataKeyValue( metadata,
282  WideString("section"),
283  section
284  );
285  }
286 
297  static inline ErrorCode SetMetadataArticleIsTrustedContent(DigitalPublishingMetadata *metadata, bool16 isTrustedContent)
298  {
300  ASSERT(dpFacade);
301 
302  return dpFacade->AddMetadataKeyValue( metadata,
303  WideString("isTrustedContent"),
304  WideString(isTrustedContent ? "true" : "false")
305  );
306  }
307 
321  virtual ErrorCode SetMetadataArticleTags(DigitalPublishingMetadata *metadata, K2Vector<WideString> const &tags) const = 0;
322 
333  virtual ErrorCode AddMetadataKeyValue(
334  DigitalPublishingMetadata *metadata,
335  WideString const &key,
336  WideString const &value
337  ) const = 0;
338 
347  virtual bool16 GetMetadataValueForKey(
348  DigitalPublishingMetadata *metadata,
349  WideString const &key,
350  WideString &value
351  ) const = 0;
352 
358  virtual void DisposeMetadata(DigitalPublishingMetadata *metadata) const = 0;
359 
370  virtual ErrorCode CreateMiniFolio(
371  IDocument const *portrait,
372  IDocument const *landscape,
373  MiniFolioOptions const &options,
374  DigitalPublishingMetadata const *metadata,
375  IDFile const &folioFile
376  ) const = 0;
377 
384  virtual DigitalPublishingFolio *CreateFolio() const = 0;
385 
394  virtual ErrorCode SetFolioMetadata(
395  DigitalPublishingFolio *folio,
396  DigitalPublishingMetadata const *metadata
397  ) const = 0;
398 
403  {
404  kOrientationAuto = 0x0,
405  kOrientationPortrait = 0x1,
406  kOrientationLandscape = 0x2,
407  kOrientationBoth = kOrientationPortrait | kOrientationLandscape,
408 
409  kInvalidFolioOrientation = 0xffffffff
410  };
411 
420  virtual ErrorCode SetFolioOrientation(
421  DigitalPublishingFolio *folio,
422  FolioOrientation orientation = kOrientationBoth
423  ) const = 0;
424 
435  virtual ErrorCode SetFolioTargetDimensions(
436  DigitalPublishingFolio *folio,
437  uint32 wideDimension,
438  uint32 narrowDimension
439  ) const = 0;
440 
451  virtual ErrorCode SetContentStackIDMap(
452  DigitalPublishingFolio *folio,
453  id_digpub::ObjectPtr const &contentStackIDMap
454  ) const = 0;
455 
464  virtual ErrorCode AddDirectoryToFolio(
465  DigitalPublishingFolio *folio,
466  IDFile const &directory
467  ) const = 0;
468 
473  {
474  kLeftEdgeBinding = 0x0,
475  kRightEdgeBinding = 0x1
476  };
477 
485  virtual ErrorCode SetFolioBindingDirection(
486  DigitalPublishingFolio *folio,
487  FolioBindingDirection direction
488  ) const = 0;
489 
498  virtual ErrorCode AddMiniFolioToFolio(
499  DigitalPublishingFolio *folio,
500  IDFile const &miniFolio
501  ) const = 0;
502 
515  virtual ErrorCode AddDocumentPairToFolio(
516  DigitalPublishingFolio *folio,
517  IDocument const *portrait,
518  IDocument const *landscape,
519  MiniFolioOptions const &options,
520  DigitalPublishingMetadata const *metadata
521  ) const = 0;
522 
531  virtual ErrorCode ExportFolioToPackage(
532  DigitalPublishingFolio *folio,
533  IDFile const &packageFile
534  ) const = 0;
535 
545  virtual ErrorCode ExportFolioToDirectory(
546  DigitalPublishingFolio *folio,
547  IDFile const &manifestFile,
548  IDPath const &articleDirectory
549  ) const = 0;
550 
559  virtual ErrorCode ExportFolioToDirectoryPackage(
560  DigitalPublishingFolio *folio,
561  IDFile const &packageFile
562  ) const = 0;
563 
569  virtual void DisposeFolio(DigitalPublishingFolio *folio) const = 0;
570 
576  virtual id_digpub::ObjectPtr CreateEmptyDictionary() const = 0;
577 
582  {
583  kXMLObjectFormat,
584  kBinaryObjectFormat,
585 
586  kInvalidObjectFormat = 0xffffffff
587  };
588 
598  virtual bool WriteDigPubObjectToStream(
599  id_digpub::ObjectPtr const &obj,
600  IPMStream *s,
601  ObjectFormat format = kBinaryObjectFormat
602  ) const = 0;
603 
615  virtual bool ReadDigPubObjectFromStream(
616  id_digpub::ObjectPtr &obj,
617  IPMStream *s,
618  ObjectFormat format = kInvalidObjectFormat
619  ) const = 0;
620  };
621 
623  {
624  public:
625  enum { kDefaultIID = IID_IDIGITALPUBLISHINGRASTERIZERFACADE };
626 
635  virtual void GetBoundingBoxForItemsInSpreadCoords(UIDList const &items, PMRect &bounds) const = 0;
636 
666  virtual ErrorCode RasterizePageitemsToStream(
667  UIDList const &items,
668  uint32 width, uint32 height,
669  PMRect const *explicitBounds,
670  id_digpub::ObjectPtr const &settings,
671  IPMStream *out
672  ) = 0;
673  };
674 
676  {
677  public:
678  enum { kDefaultIID = IID_IDIGITALPUBLISHINGVECTOREXPORTFACADE };
679 
728  virtual ErrorCode ExportPageitemsAsPDF(
729  UIDList const &items,
730  UIDList const &pageItemsToSuppress,
731  id_digpub::ObjectPtr const &settings,
732  id_digpub::ObjectPtr *results,
733  IDFile const &out
734  ) = 0;
735  };
736 }
737 
738 #endif