Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 2002 Aladdin Enterprises.  All rights reserved.
2
 
3
  This software is provided AS-IS with no warranty, either express or
4
  implied.
5
 
6
  This software is distributed under license and may not be copied,
7
  modified or distributed except as expressly authorized under the terms
8
  of the license contained in the file LICENSE in this distribution.
9
 
10
  For more information about licensing, please refer to
11
  http://www.ghostscript.com/licensing/. For information on
12
  commercial licensing, go to http://www.artifex.com/licensing/ or
13
  contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
  San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
*/
16
 
17
/* $Id: gdevpdtx.h,v 1.4 2005/01/24 16:03:40 igor Exp $ */
18
/* Shared implementation definitions for pdfwrite text and fonts */
19
 
20
#ifndef gdevpdtx_INCLUDED
21
#  define gdevpdtx_INCLUDED
22
 
23
#include "gdevpdt.h"
24
 
25
/*
26
 * The pdfwrite text code is designed in layers.  Each layer uses only
27
 * facilities defined in that layer and those below it.  The layers and the
28
 * code files that define them are:
29
 *
30
 * Text processing
31
 *   gdevpdtt.c - main text processing and utilities
32
 *   gdevpdtc.c - processing for composite and CID-based fonts
33
 *   gdevpdte.c - processing for Encoding-based (i.e., all other) fonts
34
 *   gdevpdts.c - text state bookkeeping
35
 *   gdevpdt[st].h - definitions shared by the above
36
 * Font resources
37
 *   gdevpdtf.h - interface and public definitions
38
 *   gdevpdtf.c - implementation of font resources, except for writing
39
 *   gdevpdtw.[hc] - font resource writing
40
 * Font descriptors
41
 *   gdevpdtd.h - interface and public definitions
42
 *   gdevpdtd.c - implementation of font descriptors
43
 * Base fonts
44
 *   gdevpdtb.h - interface and public definitions
45
 *   gdevpdtb.c - implementation of base fonts
46
 *
47
 * There is also a module for bitmap font processing:
48
 *   gdevpdti.h - interface and public definitions
49
 *   gdevpdti.c - implementation of bitmap fonts
50
 * This handles both text processing and font resource management for
51
 * Type 3 bitmap fonts, which don't fit into the layer structure very well.
52
 */
53
 
54
/* ================ Types and structures ================ */
55
 
56
/*
57
 * Define the structure for managing the text and font state.  This is
58
 * made up of several individually opaque components.
59
 */
60
 
61
#ifndef pdf_bitmap_fonts_DEFINED
62
#  define pdf_bitmap_fonts_DEFINED
63
typedef struct pdf_bitmap_fonts_s pdf_bitmap_fonts_t;
64
#endif
65
#ifndef pdf_outline_fonts_DEFINED
66
#  define pdf_outline_fonts_DEFINED
67
typedef struct pdf_outline_fonts_s pdf_outline_fonts_t;
68
#endif
69
#ifndef pdf_text_state_DEFINED
70
#  define pdf_text_state_DEFINED
71
typedef struct pdf_text_state_s pdf_text_state_t;
72
#endif
73
 
74
/*typedef struct pdf_text_data_s pdf_text_data_t;*/  /* gdevpdfx.h */
75
struct pdf_text_data_s {
76
    pdf_outline_fonts_t *outline_fonts;	/* gdevpdtf.c */
77
    pdf_bitmap_fonts_t *bitmap_fonts; /* gdevpdti.c */
78
    pdf_text_state_t *text_state; /* gdevpdts.c */
79
};
80
#define private_st_pdf_text_data() /* gdevpdt.c */\
81
  gs_private_st_ptrs3(st_pdf_text_data, pdf_text_data_t, "pdf_text_data_t",\
82
    pdf_text_data_enum_ptrs, pdf_text_data_reloc_ptrs,\
83
    outline_fonts, bitmap_fonts, text_state)
84
 
85
/* ================ Procedures (internal utilities) ================ */
86
 
87
/* The typedef will eventually move to gdevpdfx.h. */
88
typedef struct pdf_font_resource_s pdf_font_resource_t;
89
 
90
/* ---------------- Font accessing ---------------- */
91
 
92
/* Get the object ID of a font resource. */
93
long pdf_font_id(const pdf_font_resource_t *pdfont);
94
/* Register charproc fonts with the page or substream. */
95
int pdf_used_charproc_resources(gx_device_pdf *pdev, pdf_font_resource_t *pdfont);
96
 
97
#endif /* gdevpdtx_INCLUDED */