1 /*---------------------------------------------------------------------------*
2  |              PDFlib - A library for generating PDF on the fly             |
3  +---------------------------------------------------------------------------+
4  | Copyright (c) 1997-2006 Thomas Merz and PDFlib GmbH. All rights reserved. |
5  +---------------------------------------------------------------------------+
6  |                                                                           |
7  |    This software is subject to the PDFlib license. It is NOT in the       |
8  |    public domain. Extended versions and commercial licenses are           |
9  |    available, please check http://www.pdflib.com.                         |
10  |                                                                           |
11  *---------------------------------------------------------------------------*/
12 
13 /* $Id: p_keyconn.h,v 1.117.2.18 2009/04/15 12:06:35 york Exp $
14  *
15  * PDFlib shared keys connection lists
16  *
17  */
18 
19 #ifndef P_KEYCONN_H
20 #define P_KEYCONN_H
21 
22 /*
23  * ------------- enumerations for pdc_keyconn tables ------------------
24  */
25 
26 typedef enum
27 {
28     pdf_state_object       = (1<<0),    /* outside any document */
29     pdf_state_document     = (1<<1),    /* document */
30     pdf_state_page         = (1<<2),    /* page description in a document */
31     pdf_state_pattern      = (1<<3),    /* pattern in a document */
32     pdf_state_template     = (1<<4),    /* template in a document */
33     pdf_state_path         = (1<<5),    /* path in a page description */
34     pdf_state_font         = (1<<6),    /* font definition */
35     pdf_state_glyph        = (1<<7),    /* glyph description in a Type3 font */
36     pdf_state_glyphmetrics = (1<<8),    /* glyph metrics in a Type3 font */
37     pdf_state_glyphignore  = (1<<9),    /* glyph ignored without error */
38     pdf_state_error        = (1<<10)    /* in error cleanup */
39 }
40 pdf_state;
41 
42 typedef enum
43 {
44     errpol_legacy        = -1,
45     errpol_return  = 0,
46     errpol_exception     = 1
47 }
48 pdf_errpol;
49 
50 typedef enum
51 {
52     names_undef = 0,
53     names_annots,           /* internal for named 3D or Movie annotations */
54     names_dests,
55     names_javascript,
56     names_ap,
57     names_embeddedfiles
58 }
59 pdf_nametree_type;
60 
61 typedef enum
62 {
63     event_formfield,
64     event_annotation,
65     event_bookmark,
66     event_page,
67     event_document
68 }
69 pdf_event_object;
70 
71 typedef enum
72 {
73     pdf_openaction,
74     pdf_bookmark,
75     pdf_remotelink,
76     pdf_locallink,
77     pdf_nameddest
78 }
79 pdf_destuse;
80 
81 typedef enum
82 {
83     pdf_3dview_first    = -1,
84     pdf_3dview_last     = -2,
85     pdf_3dview_next     = -3,
86     pdf_3dview_previous = -4,
87     pdf_3dview_default  = -5
88 }
89 pdf_3dviewoptions;
90 
91 typedef enum
92 {
93     pdf_none = 0,
94     pdf_fill,
95     pdf_stroke,
96     pdf_fillstroke
97 }
98 pdf_drawmode;
99 
100 typedef enum
101 {
102     pdf_fill_winding,
103     pdf_fill_evenodd
104 }
105 pdf_fillrule;
106 
107 typedef enum
108 {
109     NoColor = -1,
110     DeviceGray = 0,
111     DeviceRGB,
112     DeviceCMYK,
113     CalGray,
114     CalRGB,
115     Lab,
116     ICCBased,
117     Indexed,
118     PatternCS,
119     Separation,
120     DeviceN
121 }
122 pdf_colorspacetype;
123 
124 typedef enum
125 {
126     color_undefgray = -1,
127     color_none = 0,
128     color_gray,
129     color_rgb,
130     color_cmyk,
131     color_spotname,
132     color_spot,
133     color_pattern,
134     color_iccbasedgray,
135     color_iccbasedrgb,
136     color_iccbasedcmyk,
137     color_lab,
138 
139     color_max  /* for pdf_parse_coloropt */
140 }
141 pdf_colortype;
142 
143 typedef enum
144 {
145     AutoIntent = 0,
146     AbsoluteColorimetric,
147     RelativeColorimetric,
148     Saturation,
149     Perceptual
150 }
151 pdf_renderingintent;
152 
153 /* only up to 32 values permitted! */
154 typedef enum
155 {
156     fo_autocidfont,
157     fo_autosubsetting,
158     fo_embedding,
159     fo_encoding,
160     fo_fontname,
161     fo_fontstyle,
162     fo_fontwarning,
163     fo_kerning,
164     fo_monospace,
165     fo_subsetlimit,
166     fo_subsetminsize,
167     fo_subsetting,
168     fo_unicodemap,
169     fo_embedopentype,
170     fo_skipposttable,
171     fo_vertical,
172     fo_keepnative,
173     fo_replacementchar,
174     fo_ascender,
175     fo_descender,
176     fo_capheight,
177     fo_xheight,
178     fo_linegap
179 }
180 pdf_font_optflags;
181 
182 /* only up to 32 values permitted! */
183 typedef enum
184 {
185     to_charspacing,
186     to_fillcolor,
187     to_font,
188     to_fontsize,
189     to_fontsize_st,
190     to_deffont,
191     to_glyphwarning,
192     to_horizscaling,
193     to_italicangle,
194     to_fakebold,
195     to_kerning,
196     to_overline,
197     to_strikeout,
198     to_strokecolor,
199     to_strokewidth,
200     to_dasharray,
201     to_text,
202     to_textformat,
203     to_textrendering,
204     to_textrise,
205     to_leading,
206     to_underline,
207     to_wordspacing,
208     to_underlinewidth,
209     to_underlineposition,
210     to_charref,
211     to_escapesequence,
212     to_glyphcheck,
213 
214     to_textx,
215     to_texty
216 }
217 pdf_text_optflags;
218 
219 typedef enum
220 {
221     border_solid,
222     border_dashed,
223     border_beveled,
224     border_inset,
225     border_underline
226 }
227 pdf_borderstyle;
228 
229 typedef enum
230 {
231     label_none,
232     label_123,
233     label_IVX,
234     label_ivx,
235     label_ABC,
236     label_abc
237 }
238 pdf_labelstyle;
239 
240 typedef enum {
241     BM_None             = 0,
242     BM_Normal           = (1<<0),
243     BM_Multiply         = (1<<1),
244     BM_Screen           = (1<<2),
245     BM_Overlay          = (1<<3),
246     BM_Darken           = (1<<4),
247     BM_Lighten          = (1<<5),
248     BM_ColorDodge       = (1<<6),
249     BM_ColorBurn        = (1<<7),
250     BM_HardLight        = (1<<8),
251     BM_SoftLight        = (1<<9),
252     BM_Difference       = (1<<10),
253     BM_Exclusion        = (1<<11),
254     BM_Hue              = (1<<12),
255     BM_Saturation       = (1<<13),
256     BM_Color            = (1<<14),
257     BM_Luminosity       = (1<<15)
258 }
259 pdf_blendmode;
260 
261 /* these values are used directly as indices into
262 ** a page's boxes[] array.
263 */
264 typedef enum
265 {
266     pdf_artbox,
267     pdf_bleedbox,
268     pdf_cropbox,
269     pdf_mediabox,
270     pdf_trimbox
271 } pdf_pagebox;
272 
273 typedef enum
274 {
275     tabs_none,
276     tabs_fitbox,
277     tabs_validarea
278 }
279 pdf_showtabs;
280 
281 typedef enum
282 {
283     text_noalign,
284     text_left,
285     text_center,
286     text_right,
287     text_justify,
288     text_lastauto,
289     text_fulljustify,
290     text_decimal,
291     text_top,
292     text_bottom,
293     text_grid
294 }
295 pdf_alignment;
296 
297 typedef enum
298 {
299     text_nofit,
300     text_clip,
301     text_shrink,
302     text_split,
303     text_spread,
304     text_auto
305 }
306 pdf_adjustmethod;
307 
308 typedef enum
309 {
310     text_relative,
311     text_typewriter,
312     text_ruler
313 }
314 pdf_hortabmethod;
315 
316 typedef enum
317 {
318     text_none      = -90000,
319     text_textrise  = -70000,
320     text_xheight   = -60000,
321     text_descender = -50000,
322     text_capheight = -40000,
323     text_ascender  = -30000,
324     text_fontsize  = -20000,
325     text_leading   = -10000
326 }
327 pdf_charmetric;
328 
329 typedef enum
330 {
331     mbox_none        = 0,
332     mbox_openleft    = (1<<0),
333     mbox_openright   = (1<<1),
334     mbox_openbottom  = (1<<2),
335     mbox_opentop     = (1<<3),
336     mbox_border      = (1<<4),
337     mbox_area        = (1<<5),
338     mbox_saverestore = (1<<6),
339     mbox_statleft    = (1<<7),
340     mbox_statright   = (1<<8),
341     mbox_statbottom  = (1<<9),
342     mbox_stattop     = (1<<10)
343 }
344 pdf_mbox_flags;
345 
346 typedef enum
347 {
348     quadd_left   = 0,
349     quadd_center = 1,
350     quadd_right  = 2
351 }
352 pdf_quadding;
353 
354 typedef enum
355 {
356     disp_visible = (1<<2),
357     disp_hidden  = (1<<1),
358     disp_noview  = (1<<5),
359     disp_noprint = 0
360 }
361 pdf_display;
362 
363 typedef enum
364 {
365     high_none,
366     high_invert,
367     high_outline,
368     high_push
369 }
370 pdf_highlight;
371 
372 typedef enum
373 {
374     pos_left    = 1000,
375     pos_bottom  = 2000,
376     pos_center  =   50,
377     pos_right   = 1100,
378     pos_top     = 2100
379 }
380 pdf_position;
381 
382 typedef enum
383 {
384     dpi_none = -999999,
385     dpi_internal = 0
386 }
387 pdf_dpi_states;
388 
389 typedef enum
390 {
391     trans_none,
392     trans_split,
393     trans_blinds,
394     trans_box,
395     trans_wipe,
396     trans_dissolve,
397     trans_glitter,
398     trans_replace,
399 
400     TRANS_1_5,
401     trans_fly = TRANS_1_5,
402     trans_push,
403     trans_cover,
404     trans_uncover,
405     trans_fade
406 }
407 pdf_transition;
408 
409 
410 /*
411  * -------- pdc_keyconn tables shared by more than one c file ----------
412  */
413 
414 #if defined(P_MBOX_C)
415 
416 static const pdc_keyconn pdf_mbox_keylist[] =
417 {
418     {"all",  -1},
419     {NULL, 0}
420 };
421 
422 #endif /* P_MBOX_C */
423 
424 
425 #if defined(P_PAGE_C) || defined(P_TEMPLATE_C)
426 
427 static const pdc_keyconn pdf_tgroup_cs_pdfkeylist[] =
428 {
429     {"DeviceGray",   color_gray},
430     {"DeviceRGB",    color_rgb},
431     {"DeviceCMYK",   color_cmyk},
432     {NULL, 0}
433 };
434 
435 #endif /* P_PAGE_C || P_TEMPLATE_C */
436 
437 
438 #if defined(P_DOCUMENT_C) || defined(P_PARAMS_C)
439 
440 static const pdc_keyconn pdf_compatibility_keylist[] =
441 {
442     {"1.3", PDC_1_3},
443     {"1.4", PDC_1_4},
444     {"1.5", PDC_1_5},
445     {"1.6", PDC_1_6},
446     {"1.7", PDC_1_7},
447     {NULL, 0}
448 };
449 
450 #endif /* P_DOCUMENT_C || P_PARAMS_C */
451 
452 
453 #if defined(P_ACTIONS_C) || defined(P_PAGE_C)
454 
455 static const pdc_keyconn pdf_transition_keylist[] =
456 {
457     {"none",      trans_none},
458     {"split",     trans_split},
459     {"blinds",    trans_blinds},
460     {"box",       trans_box},
461     {"wipe",      trans_wipe},
462     {"dissolve",  trans_dissolve},
463     {"glitter",   trans_glitter},
464     {"replace",   trans_replace},
465     {"fly",       trans_fly},
466     {"push",      trans_push},
467     {"cover",     trans_cover},
468     {"uncover",   trans_uncover},
469     {"fade",      trans_fade},
470     {NULL, 0}
471 };
472 
473 static const pdc_keyconn pdf_transition_pdfkeylist[] =
474 {
475     {"R",         trans_none},
476     {"Split",     trans_split},
477     {"Blinds",    trans_blinds},
478     {"Box",       trans_box},
479     {"Wipe",      trans_wipe},
480     {"Dissolve",  trans_dissolve},
481     {"Glitter",   trans_glitter},
482     {"R",         trans_replace},
483     {"Fly",       trans_fly},
484     {"Push",      trans_push},
485     {"Cover",     trans_cover},
486     {"Uncover",   trans_uncover},
487     {"Fade",      trans_fade},
488     {NULL, 0}
489 };
490 
491 #endif /* P_ACTIONS_C || P_PAGE_C */
492 
493 
494 #if defined(P_IMAGE_C) || defined(P_PARAMS_C) || defined(P_XGSTATE_C)
495 
496 static const pdc_keyconn pdf_renderingintent_pdfkeylist[] =
497 {
498     {"Auto",                 AutoIntent},
499     {"AbsoluteColorimetric", AbsoluteColorimetric},
500     {"RelativeColorimetric", RelativeColorimetric},
501     {"Saturation",           Saturation},
502     {"Perceptual",           Perceptual},
503     {NULL, 0}
504 };
505 
506 #endif /* P_IMAGE_C || P_PARAMS_C || P_XGSTATE_C */
507 
508 
509 #if defined(P_MBOX_C) || defined(P_TABLE_C) || defined(P_XGSTATE_C)
510 
511 static const pdc_keyconn pdf_linecap_keylist[] =
512 {
513     {"butt",       0},
514     {"round",      1},
515     {"projecting", 2},
516     {NULL, 0}
517 };
518 
519 static const pdc_keyconn pdf_linejoin_keylist[] =
520 {
521     {"miter",   0},
522     {"round",   1},
523     {"bevel",   2},
524     {NULL, 0}
525 };
526 
527 #endif /* P_MBOX_C || P_TABLE_C || P_XGSTATE_C */
528 
529 
530 #if defined(P_PARAMS_C) || defined(P_TEXTFLOW_C)
531 
532 static const pdc_keyconn pdf_fillrule_keylist[] =
533 {
534     {"winding",   pdf_fill_winding },
535     {"evenodd",   pdf_fill_evenodd },
536     {NULL, 0}
537 };
538 
539 #endif /* P_PARAMS_C || P_TEXTFLOW_C */
540 
541 
542 #if defined(P_DOCUMENT_C) || defined(P_PARAMS_C) || defined(P_PDI_C)
543 
544 static const pdc_keyconn pdf_usebox_keylist[] =
545 {
546     {"art",   pdc_pbox_art},
547     {"bleed", pdc_pbox_bleed},
548     {"crop",  pdc_pbox_crop},
549     {"media", pdc_pbox_media},
550     {"trim",  pdc_pbox_trim},
551     {NULL, 0}
552 };
553 
554 #endif /* P_DOCUMENT_C || P_PARAMS_C || P_PDI_C */
555 
556 #if defined(P_DOCUMENT_C) || defined(P_PDI_C)
557 
558 static const pdc_keyconn pdf_usebox_pdfkeylist[] =
559 {
560     {"/ArtBox",   pdc_pbox_art   },
561     {"/BleedBox", pdc_pbox_bleed },
562     {"/CropBox",  pdc_pbox_crop  },
563     {"/MediaBox", pdc_pbox_media },
564     {"/TrimBox",  pdc_pbox_trim  },
565     {NULL, 0}
566 };
567 
568 #endif /* P_DOCUMENT_C || P_PDI_C */
569 
570 
571 #if defined(P_BLOCK_C) || defined(P_IMAGE_C)
572 
573 static const pdc_keyconn pdf_dpi_keylist[] =
574 {
575     {"none",     dpi_none},
576     {"internal", dpi_internal},
577     {NULL, 0}
578 };
579 
580 #endif /* P_BLOCK_C || P_IMAGE_C */
581 
582 #if defined(P_BLOCK_C) || defined(P_TEXT_C)
583 
584 static const pdc_keyconn pdf_stampdir_keylist[] =
585 {
586     {NULL, 0}
587 };
588 
589 #endif /* P_BLOCK_C || P_TEXT_C */
590 
591 
592 
593 
594 #if defined(P_MBOX_C) || defined(P_TEXTFLOW_C)
595 static const pdc_keyconn pdf_boxheight_keylist[] =
596 {
597     {"none",       text_none},
598     {"baseline",   text_none},
599     {"textrise",   text_textrise},
600     {"xheight",    text_xheight},
601     {"descender",  text_descender},
602     {"capheight",  text_capheight},
603     {"ascender",   text_ascender},
604     {"fontsize",   text_fontsize},
605     {"leading",    text_leading},
606     {NULL, 0}
607 };
608 
609 #endif /* P_MBOX_C || P_TEXTFLOW_C */
610 
611 
612 #if defined(P_BLOCK_C) || defined(P_TEXT_C) || defined(P_TEXTFLOW_C)
613 
614 static const pdc_keyconn pdf_charname_keylist[] =
615 {
616     {"none", 0},
617     {NULL, 0}
618 };
619 
620 #define PDF_UNDERLINEWIDTH_AUTO 0
621 static const pdc_keyconn pdf_underlinewidth_keylist[] =
622 {
623     {"auto",       PDF_UNDERLINEWIDTH_AUTO},
624     {NULL, 0}
625 };
626 
627 #define PDF_UNDERLINEPOSITION_AUTO 1000000
628 static const pdc_keyconn pdf_underlineposition_keylist[] =
629 {
630     {"auto",       PDF_UNDERLINEPOSITION_AUTO},
631     {NULL, 0}
632 };
633 
634 #endif /* P_BLOCK_C || P_TEXT_C || P_TEXTFLOW_C */
635 
636 
637 #if defined(P_BLOCK_C)|| defined(P_PARAMS_C) || \
638     defined(P_TEXT_C) || defined(P_TEXTFLOW_C)
639 
640 static const pdc_keyconn pdf_glyphcheck_keylist[] =
641 {
642     {"none",         text_nocheck},
643     {"error",        text_error},
644     {"replace",      text_replace},
645     {NULL, 0}
646 };
647 
648 #endif /* P_BLOCK_C || P_PARAMS_C || P_TEXT_C || P_TEXTFLOW_C */
649 
650 
651 #if defined(P_ANNOTS_C) || defined(P_BLOCK_C) || defined(P_FIELDS_C) || \
652     defined(P_IMAGE_C) || defined(P_TEXT_C)
653 
654 static const pdc_keyconn pdf_position_keylist[] =
655 {
656     {"left",    pos_left},
657     {"bottom",  pos_bottom},
658     {"center",  pos_center},
659     {"right",   pos_right},
660     {"top",     pos_top},
661     {NULL, 0}
662 };
663 
664 #endif /* P_ANNOTS_C || P_BLOCK_C || P_FIELDS_C || P_IMAGE_C || P_TEXT_C */
665 
666 
667 #if defined(P_BLOCK_C) || defined(P_FIELDS_C) || \
668     defined(P_IMAGE_C) || defined(P_TABLE_C) || \
669     defined(P_TEXT_C) || defined(P_TEXTFLOW_C)
670 
671 static const pdc_keyconn pdf_fitmethod_keylist[] =
672 {
673     {"nofit",       pdc_nofit},
674     {"clip",        pdc_clip},
675     {"auto",        pdc_tauto},
676 #if !defined (P_TEXTFLOW_C)
677     {"slice",       pdc_slice},
678     {"meet",        pdc_meet},
679     {"entire",      pdc_entire},
680 #endif
681     {NULL, 0}
682 };
683 
684 #endif /* P_BLOCK_C || P_FIELDS_C || P_IMAGE_C || P_TABLE_C ||
685           P_TEXT_C || P_TEXTFLOW_C */
686 
687 
688 #if defined(P_ANNOTS_C) || defined(P_BLOCK_C) || defined(P_FIELDS_C) || \
689     defined(P_IMAGE_C) || defined(P_TEXT_C) || defined(P_TEXTFLOW_C)
690 
691 static const pdc_keyconn pdf_orientate_keylist[] =
692 {
693     {"north",   0},
694     {"west",   90},
695     {"south", 180},
696     {"east",  270},
697     {NULL, 0}
698 };
699 
700 #endif /* P_ANNOTS_C || P_BLOCK_C || P_FIELDS_C ||
701           P_IMAGE_C || P_TEXT_C || P_TEXTFLOW_C */
702 
703 
704 #if defined(P_ANNOTS_C) || defined(P_BLOCK_C) || defined(P_FIELDS_C) ||  \
705     defined(P_MBOX_C) || defined(P_TEXT_C) || defined(P_TEXTFLOW_C)
706 
707 static const pdc_keyconn pdf_fontsize_keylist[] =
708 {
709     {"auto",       0},
710     {"xheight",    text_xheight},
711     {"capheight",  text_capheight},
712     {"ascender",   text_ascender},
713     {"bodyheight", text_fontsize},
714     {NULL, 0}
715 };
716 
717 #endif /* P_ANNOTS_C P_BLOCK_C || P_FIELDS_C ||
718           P_MBOX_C || P_TEXT_C || P_TEXTFLOW_C */
719 
720 
721 #if defined(P_BLOCK_C) || defined(P_FONT_C) ||  defined(P_HYPER_C) || \
722     defined(P_MBOX_C) || defined(P_TEXT_C) || defined(P_TEXTFLOW_C)
723 
724 static const pdc_keyconn pdf_fontstyle_pdfkeylist[] =
725 {
726     {"Normal",     fnt_Normal},
727     {"Bold",       fnt_Bold},
728     {"Italic",     fnt_Italic},
729     {"BoldItalic", fnt_BoldItalic},
730     {NULL, 0}
731 };
732 
733 #endif /* P_BLOCK_C || P_FONT_C || P_HYPER_C ||
734           P_MBOX_C || P_TEXT_C || P_TEXTFLOW_C */
735 
736 
737 #if defined(P_ANNOTS_C) || defined(P_FIELDS_C)
738 
739 static const pdc_keyconn pdf_quadding_keylist[] =
740 {
741     {"left",     quadd_left},
742     {"center",   quadd_center},
743     {"right",    quadd_right},
744     {NULL, 0}
745 };
746 
747 static const pdc_keyconn pdf_display_keylist[] =
748 {
749     {"visible",   disp_visible},
750     {"hidden",    disp_hidden},
751     {"noview",    disp_noview},
752     {"noprint",   disp_noprint},
753     {NULL, 0}
754 };
755 
756 static const pdc_keyconn pdf_highlight_keylist[] =
757 {
758     {"none",      high_none},
759     {"invert",    high_invert},
760     {"outline",   high_outline},
761     {"push",      high_push},
762     {NULL, 0}
763 };
764 
765 static const pdc_keyconn pdf_highlight_pdfkeylist[] =
766 {
767     {"N",   high_none},
768     {"I",   high_invert},
769     {"O",   high_outline},
770     {"P",   high_push},
771     {NULL, 0}
772 };
773 
774 static const pdc_keyconn pdf_borderstyle_keylist[] =
775 {
776     {"solid",       border_solid},
777     {"dashed",      border_dashed},
778     {"beveled",     border_beveled},
779     {"inset",       border_inset},
780     {"underline",   border_underline},
781     {NULL, 0}
782 };
783 
784 static const pdc_keyconn pdf_borderstyle_pdfkeylist[] =
785 {
786     {"S",  border_solid},
787     {"D",  border_dashed},
788     {"B",  border_beveled},
789     {"I",  border_inset},
790     {"U",  border_underline},
791     {NULL, 0}
792 };
793 
794 #endif /* P_ANNOTS_C || P_FIELDS_C */
795 
796 
797 #if defined(P_3D_C) || defined(P_BLOCK_C) || defined(P_FIELDS_C) || \
798     defined(P_HYPER_C) || defined(P_LAYER_C) || defined(P_PARAMS_C) || \
799     defined(P_TEXT_C) || defined(P_TEXTFLOW_C) || defined(P_UTIL_C) || \
800     defined(P_XMP_C)
801 
802 /* original in pc_unicode.h */
803 static const pdc_keyconn pdf_textformat_keylist[] =
804 {
805     {"auto",       pdc_auto},
806     {"auto2",      pdc_auto2},
807     {"bytes",      pdc_bytes},
808     {"bytes2",     pdc_bytes2},
809     {"utf8",       pdc_utf8},
810     {"utf16",      pdc_utf16},
811     {"utf16be",    pdc_utf16be},
812     {"utf16le",    pdc_utf16le},
813     {NULL, 0}
814 };
815 
816 #endif /* P_3D_C || P_BLOCK_C || P_FIELDS_C || P_HYPER_C ||
817           P_LAYER_C || P_PARAMS_C || P_TEXT_C || P_TEXTFLOW_C ||
818           P_UTIL_C || P_XMP_C */
819 
820 
821 #if defined(P_DOCUMENT_C) || \
822     defined(P_3D_C) || \
823     defined(P_ACTIONS_C) || \
824     defined(P_BLOCK_C) || \
825     defined(P_FIELDS_C) || \
826     defined(P_FONT_C) || \
827     defined(P_ICC_C) || \
828     defined(P_IMAGE_C) || \
829     defined(P_PARAMS_C) || \
830     defined(P_PDI_C) || \
831     defined(P_TABLE_C) || \
832     defined(P_TEMPLATE_C) || \
833     defined(P_TEXT_C) || \
834     defined(P_TEXTFLOW_C)
835 
836 static const pdc_keyconn pdf_errpol_keylist[] =
837 {
838     {"legacy",        errpol_legacy},
839     {"return",        errpol_return},
840     {"exception",     errpol_exception},
841     {NULL, 0}
842 };
843 
844 #define PDF_ERRORPOLICY_OPTION \
845 \
846     {"errorpolicy", pdc_keywordlist, PDC_OPT_NONE, 1, 1, \
847       0, 0, pdf_errpol_keylist}, \
848 
849 #endif
850 
851 
852 #endif  /* P_KEYCONN_H */
853 
854