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) 1997, 2000 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: gsfcmap.h,v 1.9 2003/02/06 09:40:00 igor Exp $ */
18
/* Public interface to CMaps */
19
 
20
#ifndef gsfcmap_INCLUDED
21
#  define gsfcmap_INCLUDED
22
 
23
#include "gsccode.h"
24
 
25
/* Define the abstract type for a CMap. */
26
#ifndef gs_cmap_DEFINED
27
#  define gs_cmap_DEFINED
28
typedef struct gs_cmap_s gs_cmap_t;
29
#endif
30
 
31
/* ---------------- Procedural interface ---------------- */
32
 
33
/*
34
 * Create an Identity CMap.
35
 */
36
int gs_cmap_create_identity(gs_cmap_t **ppcmap, int num_bytes, int wmode,
37
			    gs_memory_t *mem);
38
 
39
/*
40
 * Create an Identity CMap where each entry varies only in the lowest byte,
41
 * and that maps to characters rather than to CIDs.
42
 * (This is suitable for use as a ToUnicode CMap, for example.)
43
 */
44
int gs_cmap_create_char_identity(gs_cmap_t **ppcmap, int num_bytes,
45
				 int wmode, gs_memory_t *mem);
46
 
47
/*
48
 * Decode a character from a string using a CMap, updating the index.
49
 * Return 0 for a CID or name, N > 0 for a character code where N is the
50
 * number of bytes in the code, or an error.  Store the decoded bytes in
51
 * *pchr.  For undefined characters, set *pglyph = gs_no_glyph and return 0.
52
 */
53
int gs_cmap_decode_next(const gs_cmap_t *pcmap, const gs_const_string *str,
54
			uint *pindex, uint *pfidx,
55
			gs_char *pchr, gs_glyph *pglyph);
56
 
57
/*
58
 * Allocate and initialize a ToUnicode CMap.
59
 */
60
int gs_cmap_ToUnicode_alloc(gs_memory_t *mem, int id, int num_codes, int key_size, 
61
			    gs_cmap_t **ppcmap);
62
 
63
/*
64
 * Write a code pair to ToUnicode CMap.
65
 */
66
void gs_cmap_ToUnicode_add_pair(gs_cmap_t *pcmap, int code0, int code2);
67
 
68
#endif /* gsfcmap_INCLUDED */