Untitled


SUBMITTED BY: Guest

DATE: Nov. 25, 2014, 7:17 a.m.

FORMAT: Text only

SIZE: 13.7 kB

HITS: 48153

  1. /* CoreGraphics - CGPDFContext.h
  2. Copyright (c) 2000-2011 Apple Inc.
  3. All rights reserved. */
  4. #ifndef CGPDFCONTEXT_H_
  5. #define CGPDFCONTEXT_H_
  6. #include <CoreGraphics/CGBase.h>
  7. #include <CoreGraphics/CGContext.h>
  8. #include <CoreGraphics/CGDataConsumer.h>
  9. #include <CoreFoundation/CFDictionary.h>
  10. CF_IMPLICIT_BRIDGING_ENABLED
  11. /* Create a PDF context, using `consumer' for output. `mediaBox' is the
  12. default page media bounding box; if NULL, then a default page size is
  13. used. `auxiliaryInfo' specifies additional information used by the PDF
  14. context when generating the PDF file. The keys and values in
  15. `auxiliaryInfo' are described below. If `mediaBox' is non-NULL, then its
  16. value overrides the value of `kCGPDFContextMediaBox' if specified in the
  17. `auxiliaryInfo' dictionary. */
  18. CG_EXTERN CGContextRef CGPDFContextCreate(CGDataConsumerRef consumer,
  19. const CGRect *mediaBox, CFDictionaryRef auxiliaryInfo)
  20. CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
  21. /* Create a PDF context for writing to `url'. This function behaves in the
  22. same manner as the above function, except that the output data will be
  23. written to `url'. */
  24. CG_EXTERN CGContextRef CGPDFContextCreateWithURL(CFURLRef url,
  25. const CGRect *mediaBox, CFDictionaryRef auxiliaryInfo)
  26. CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
  27. /* Close a PDF context. After closing the context, all pending data is
  28. written to the context's destination, and the PDF file is completed. No
  29. additional data will be written to the context's destionation after
  30. closing. */
  31. CG_EXTERN void CGPDFContextClose(CGContextRef context)
  32. CG_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
  33. /* Begin a new page in the PDF context `context'. */
  34. CG_EXTERN void CGPDFContextBeginPage(CGContextRef context,
  35. CFDictionaryRef pageInfo)
  36. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  37. /* End the current page in the PDF context `context'. */
  38. CG_EXTERN void CGPDFContextEndPage(CGContextRef context)
  39. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  40. /* Add the metadata stream specified by `metadata' to the document catalog
  41. of `context', as described in Table 3.25, "Entries in the catalog
  42. dictionary", of the PDF 1.7 specification. The contents of metadata must
  43. be XML formatted according to the Extensible Metadata Platform, as
  44. described in section 10.2.2, "Metadata Streams", of the PDF 1.7
  45. specification. */
  46. CG_EXTERN void CGPDFContextAddDocumentMetadata(CGContextRef context,
  47. CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0);
  48. /* Set the URL associated with `rect' to `url' in the PDF context
  49. `context'. */
  50. CG_EXTERN void CGPDFContextSetURLForRect(CGContextRef context, CFURLRef url,
  51. CGRect rect) CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  52. /* Create a PDF destination named `name' at `point' in the current page of
  53. the PDF context `context'. */
  54. CG_EXTERN void CGPDFContextAddDestinationAtPoint(CGContextRef context,
  55. CFStringRef name, CGPoint point)
  56. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  57. /* Specify a destination named `name' to jump to when clicking in `rect' of
  58. the current page of the PDF context `context'. */
  59. CG_EXTERN void CGPDFContextSetDestinationForRect(CGContextRef context,
  60. CFStringRef name, CGRect rect)
  61. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  62. /*** Keys for the auxiliary info dictionary or the page info dictionary. ***/
  63. /* The media box for the document or for a given page. Optional; if present,
  64. the value of this key must be a CFData containing a CGRect (stored by
  65. value, not by reference). */
  66. CG_EXTERN const CFStringRef kCGPDFContextMediaBox
  67. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  68. /* The crop box for the document or for a given page. Optional; if present,
  69. the value of this key must be a CFData containing a CGRect (stored by
  70. value, not by reference). */
  71. CG_EXTERN const CFStringRef kCGPDFContextCropBox
  72. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  73. /* The bleed box for the document or for a given page. Optional; if present,
  74. the value of this key must be a CFData containing a CGRect (stored by
  75. value, not by reference). */
  76. CG_EXTERN const CFStringRef kCGPDFContextBleedBox
  77. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  78. /* The trim box for the document or for a given page. Optional; if present,
  79. the value of this key must be a CFData containing a CGRect (stored by
  80. value, not by reference). */
  81. CG_EXTERN const CFStringRef kCGPDFContextTrimBox
  82. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  83. /* The art box for the document or for a given page. Optional; if present,
  84. the value of this key must be a CFData containing a CGRect (stored by
  85. value, not by reference). */
  86. CG_EXTERN const CFStringRef kCGPDFContextArtBox
  87. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  88. /*** Keys for auxiliary info dictionary. ***/
  89. /* The document's title. Optional; if present, the value of this key must be
  90. a CFString. */
  91. CG_EXTERN const CFStringRef kCGPDFContextTitle
  92. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  93. /* The name of the person who created this document. Optional; if present,
  94. the value of this key must be a CFString. */
  95. CG_EXTERN const CFStringRef kCGPDFContextAuthor
  96. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  97. /* The subject of a document. Optional; if present, the value of this key
  98. must be a CFString. */
  99. CG_EXTERN const CFStringRef kCGPDFContextSubject
  100. CG_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
  101. /* The keywords for this document. This key is optional. If the value of
  102. this key is a CFString, the /Keywords entry will be the specified string.
  103. If the value of this key is a CFArray, then it must be an array of
  104. CFStrings. The /Keywords entry will in this case be the concatenation of
  105. the specified strings separated by commas (","). In addition, an entry
  106. with the key "/AAPL:Keywords" will be stored in the document information
  107. dictionary; its value is an array consisting of each of the specified
  108. strings. The value of this key must be in one of the above forms;
  109. otherwise, this key is ignored. */
  110. CG_EXTERN const CFStringRef kCGPDFContextKeywords
  111. CG_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
  112. /* The name of the application that created the original data used to create
  113. this document. Optional; if present, the value of this key must be a
  114. CFString. */
  115. CG_EXTERN const CFStringRef kCGPDFContextCreator
  116. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  117. /* The "owner password" of the PDF document. If this key is specified, the
  118. document will be encrypted using the value as the owner password;
  119. otherwise, the document will not be encrypted. The value of this key must
  120. be a CFStringRef which can be represented in ASCII encoding; only the
  121. first 32 bytes will be used for the password. There is no default value
  122. for this key.
  123. If the value of this key cannot be represented in ASCII, the document
  124. will not be created and the creation function will return NULL. */
  125. CG_EXTERN const CFStringRef kCGPDFContextOwnerPassword
  126. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  127. /* The "user password" of the PDF document. If the document is encrypted,
  128. then the value of this key will be the user password for the document; if
  129. unspecified, the user password will be the empty string. The value of
  130. this key must be a CFStringRef which can be represented in ASCII
  131. encoding; only the first 32 bytes will be used for the password.
  132. If the value of this key cannot be represented in ASCII, the document
  133. will not be created and the creation function will return NULL. */
  134. CG_EXTERN const CFStringRef kCGPDFContextUserPassword
  135. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  136. /* Specifies the encryption key length in bits; see Table 3.18 "Entries
  137. common to all encryption dictionaries", PDF Reference: Adobe PDF version
  138. 1.5 (4th ed.) for more info. Optional; if present, the value of this key
  139. must be a CFNumber with value which is a multiple of 8 between 40 and
  140. 128, inclusive. If this key is absent or invalid, the encryption key
  141. length defaults to 40 bits. */
  142. CG_EXTERN const CFStringRef kCGPDFContextEncryptionKeyLength
  143. CG_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
  144. /* Used to specify whether the document allows printing when unlocked with
  145. the user password. The value of this key must be a CFBooleanRef. The
  146. default value of this key is "kCFBooleanTrue". */
  147. CG_EXTERN const CFStringRef kCGPDFContextAllowsPrinting
  148. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  149. /* Used to specify whether the document allows copying when unlocked with
  150. the user password. The value of this key must be a CFBooleanRef. The
  151. default value of this key is "kCFBooleanTrue". */
  152. CG_EXTERN const CFStringRef kCGPDFContextAllowsCopying
  153. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
  154. /* The document's PDF/X output intent. Optional; if present, the value of
  155. this key must be a CFDictionaryRef. The dictionary is added to the
  156. /OutputIntents entry in the PDF file's document catalog. The keys and
  157. values contained in the dictionary must match those specified in section
  158. 9.10.4 of the PDF 1.4 specification, ISO/DIS 15930-3 document published
  159. by ISO/TC 130, and Adobe Technical Note #5413. */
  160. CG_EXTERN const CFStringRef kCGPDFContextOutputIntent
  161. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  162. /* The following keys are supported in the output intent dictionary:
  163. kCGPDFXOutputIntentSubtype ("S"): The output intent subtype. This key is
  164. required; the value of this key must be a CFString equal to "GTS_PDFX";
  165. otherwise, the dictionary is ignored. */
  166. CG_EXTERN const CFStringRef kCGPDFXOutputIntentSubtype
  167. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  168. /* kCGPDFXOutputConditionIdentifier ("OutputConditionIdentifier"): A string
  169. identifying the intended output device or production condition in a
  170. human- or machine-readable form. This key is required; the value of this
  171. key must be a CFString. For best results, the string should be
  172. representable losslessly in ASCII encoding. */
  173. CG_EXTERN const CFStringRef kCGPDFXOutputConditionIdentifier
  174. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  175. /* kCGPDFXOutputCondition ("OutputCondition"): A text string identifying the
  176. intended output device or production condition in a human-readable form.
  177. This key is optional; if present, the value of this key must be a
  178. CFString. */
  179. CG_EXTERN const CFStringRef kCGPDFXOutputCondition
  180. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  181. /* kCGPDFXRegistryName ("RegistryName"): A string identifying the registry
  182. in which the condition designated by `kCGPDFXOutputConditionIdentifier'
  183. is defined. This key is optional; if present, the value of this key must
  184. be a CFString. For best results, the string should be representable
  185. losslessly in ASCII encoding. */
  186. CG_EXTERN const CFStringRef kCGPDFXRegistryName
  187. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  188. /* kCGPDFXInfo ("Info"): A human-readable text string containing additional
  189. information about the intended target device or production condition.
  190. This key is required if the value of `kCGPDFXOutputConditionIdentifier'
  191. does not specify a standard production condition; it is optional
  192. otherwise. If present, the value of this key must be a CFString. */
  193. CG_EXTERN const CFStringRef kCGPDFXInfo
  194. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  195. /* kCGPDFXDestinationOutputProfile ("DestOutputProfile"): An ICC profile
  196. stream defining the transformation from the PDF document's source colors
  197. to output device colorants. This key is required if the value of
  198. `kCGPDFXOutputConditionIdentifier' does not specify a standard production
  199. condition; it is optional otherwise. If present, the value of this key
  200. must be a ICC-based CGColorSpaceRef. */
  201. CG_EXTERN const CFStringRef kCGPDFXDestinationOutputProfile
  202. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  203. /* The document's output intents. Optional; if present, the value must be a
  204. CFArrayRef containing one or more CFDictionaryRefs. The array is added to
  205. the PDF document in the /OutputIntents entry in the PDF file's document
  206. catalog. Each dictionary in the array must be of form specified above for
  207. the `kCGPDFContextOutputIntent' key, except that only the first
  208. dictionary in the array may contain the `kCGPDFXOutputIntentSubtype'
  209. ("S") key with a value of "GTS_PDFX". If both `kCGPDFContextOutputIntent'
  210. and `kCGPDFContextOutputIntents' keys are specified, the former is
  211. ignored. */
  212. CG_EXTERN const CFStringRef kCGPDFContextOutputIntents
  213. CG_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_NA);
  214. CF_IMPLICIT_BRIDGING_DISABLED
  215. #endif /* CGPDFCONTEXT_H_ */

comments powered by Disqus