Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 650 git-svn-id: svn://10.65.10.50/trunk@14148 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			129 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/*---------------------------------------------------------------------------*
 | 
						|
 |              PDFlib - A library for generating PDF on the fly             |
 | 
						|
 +---------------------------------------------------------------------------+
 | 
						|
 | Copyright (c) 1997-2005 Thomas Merz and PDFlib GmbH. All rights reserved. |
 | 
						|
 +---------------------------------------------------------------------------+
 | 
						|
 |                                                                           |
 | 
						|
 |    This software is subject to the PDFlib license. It is NOT in the       |
 | 
						|
 |    public domain. Extended versions and commercial licenses are           |
 | 
						|
 |    available, please check http://www.pdflib.com.                         |
 | 
						|
 |                                                                           |
 | 
						|
 *---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
/* $Id: pc_encoding.h,v 1.2 2006-07-11 13:10:33 alex Exp $
 | 
						|
 *
 | 
						|
 * Encoding data structures and routines
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef PC_ENCODING_H
 | 
						|
#define PC_ENCODING_H
 | 
						|
 | 
						|
/*
 | 
						|
 * Symbolic names for predefined font encodings. 0 and above are used
 | 
						|
 * as indices in the pdc_encodingvector array. The encodings starting at
 | 
						|
 * pdc_firstvarenc have no enumeration name, because they are loaded
 | 
						|
 * dynamically.
 | 
						|
 * The predefined encodings must not be changed or rearranged.
 | 
						|
 * The order of encodings here must match that of pdc_core_encodings
 | 
						|
 * and pdc_fixed_encoding_names in pc_encoding.c.
 | 
						|
 */
 | 
						|
typedef enum
 | 
						|
{
 | 
						|
    pdc_invalidenc = -5,
 | 
						|
    pdc_glyphid = -4,
 | 
						|
    pdc_unicode = -3,
 | 
						|
    pdc_builtin = -2,
 | 
						|
    pdc_cid = -1,
 | 
						|
    pdc_winansi = 0,
 | 
						|
    pdc_macroman = 1,
 | 
						|
    pdc_macroman_apple = 2,
 | 
						|
    pdc_ebcdic = 3,
 | 
						|
    pdc_ebcdic_37 = 4,
 | 
						|
    pdc_pdfdoc = 5,
 | 
						|
    pdc_stdenc = 6,
 | 
						|
    pdc_macexpert = 7,
 | 
						|
    pdc_firstvarenc = 8
 | 
						|
}
 | 
						|
pdc_encoding;
 | 
						|
 | 
						|
#define PDC_EBCDIC_NAME "ebcdic"
 | 
						|
#define PDC_EBCDIC_ENC pdc_ebcdic
 | 
						|
 | 
						|
typedef struct pdc_encodingvector_s pdc_encodingvector;
 | 
						|
 | 
						|
struct pdc_encodingvector_s
 | 
						|
{
 | 
						|
    char *apiname;             /* PDFlib's name of the encoding at the API */
 | 
						|
    pdc_ushort codes[256];     /* unicode values */
 | 
						|
    char *chars[256];          /* character names */
 | 
						|
    char given[256];           /* flags for kind of given character name */
 | 
						|
    pdc_byte *sortedslots;     /* slots for sorted unicode values */
 | 
						|
    int nslots;                /* number of sorted slots */
 | 
						|
    unsigned long flags;       /* flags, see PDC_ENC_... */
 | 
						|
};
 | 
						|
 | 
						|
#define PDC_ENC_INCORE      (1L<<0) /* encoding from in-core */
 | 
						|
#define PDC_ENC_FILE        (1L<<1) /* encoding from file */
 | 
						|
#define PDC_ENC_HOST        (1L<<2) /* encoding from host system */
 | 
						|
#define PDC_ENC_USER        (1L<<3) /* encoding from user */
 | 
						|
#define PDC_ENC_FONT        (1L<<4) /* encoding from font */
 | 
						|
#define PDC_ENC_GENERATE    (1L<<5) /* encoding generated from Unicode page */
 | 
						|
#define PDC_ENC_USED        (1L<<6) /* encoding already used */
 | 
						|
#define PDC_ENC_SETNAMES    (1L<<7) /* character names are set */
 | 
						|
#define PDC_ENC_ALLOCCHARS  (1L<<8) /* character names are allocated */
 | 
						|
#define PDC_ENC_STDNAMES    (1L<<9) /* character names are all Adobe standard */
 | 
						|
#define PDC_ENC_TEMP       (1L<<10) /* temporary generated encoding */
 | 
						|
 | 
						|
#define PDC_ENC_ISUNDEF     (1<<0)  /* is undefined (unknown Unicode(s) */
 | 
						|
#define PDC_ENC_ISAGLNAME   (1<<1)  /* is AGL 1.2' name (without ambiguity) */
 | 
						|
#define PDC_ENC_ISZADBNAME  (1<<2)  /* is ZapfDingbats name */
 | 
						|
#define PDC_ENC_ISUNINAME   (1<<3)  /* is a "uni" name (with single Unicode) */
 | 
						|
#define PDC_ENC_ISAMBIG     (1<<4)  /* is ambiguous name (double mapping) */
 | 
						|
#define PDC_ENC_ISVARIANT   (1<<5)  /* is glyphic variant (contains period) */
 | 
						|
#define PDC_ENC_ISCOMP      (1<<6)  /* is composed glyph (contains underscores
 | 
						|
                                     * or more than one Unicode values) */
 | 
						|
#define PDC_ENC_ISCUS       (1<<7)  /* is a glyph from Unicode's Corporate
 | 
						|
                                     * Use Subarea (CUS) used by Adobe
 | 
						|
                                     * (U+F600 - U+F8FF) */
 | 
						|
#define PDC_ENC_ISLIGATURE  (1<<8)  /* is a Latin or Armenian ligature glyph */
 | 
						|
 | 
						|
#define PDC_ENC_OLDMAPPING  (1<<0)  /* get alternative mapping */
 | 
						|
#define PDC_ENC_RESOLCUS    (1<<1)  /* resolve CUS value */
 | 
						|
#define PDC_ENC_RESOLLIGAT  (1<<2)  /* resolve ligature value */
 | 
						|
 | 
						|
#define PDC_ENC_MODSEPAR     "_"          /* separator of modified encoding */
 | 
						|
#define PDC_ENC_MODWINANSI   "winansi_"   /* prefix of modified winansi enc */
 | 
						|
#define PDC_ENC_MODMACROMAN  "macroman_"  /* prefix of modified macroman enc */
 | 
						|
#define PDC_ENC_MODEBCDIC    "ebcdic_"    /* prefix of modified ebcdic enc */
 | 
						|
#define PDC_ENC_ISO8859      "iso8859-"   /* begin of iso8859 enc name */
 | 
						|
#define PDC_ENC_CP125        "cp125"      /* begin of ANSI enc name */
 | 
						|
 | 
						|
#define PDC_ENC_TEMPNAME "__temp__enc__"  /* name of temporary encoding */
 | 
						|
 | 
						|
/* pc_encoding.c */
 | 
						|
void pdc_init_encoding(pdc_core *pdc, pdc_encodingvector *ev,
 | 
						|
                       const char *name);
 | 
						|
pdc_encodingvector *pdc_new_encoding(pdc_core *pdc, const char *name);
 | 
						|
void pdc_cleanup_encoding(pdc_core *pdc, pdc_encodingvector *ev);
 | 
						|
int pdc_get_encoding_bytecode(pdc_core *pdc, pdc_encodingvector *ev,
 | 
						|
                              pdc_ushort uv);
 | 
						|
pdc_byte pdc_transform_bytecode(pdc_core *pdc, pdc_encodingvector *evto,
 | 
						|
                                pdc_encodingvector *evfrom, pdc_byte code);
 | 
						|
pdc_encodingvector *pdc_copy_core_encoding(pdc_core *pdc, const char *encoding);
 | 
						|
const char *pdc_get_fixed_encoding_name(pdc_encoding enc);
 | 
						|
const char *pdc_get_pdf_encoding_name(pdc_encoding enc);
 | 
						|
pdc_encodingvector *pdc_generate_pdfencoding(pdc_core *pdc,
 | 
						|
                                             const char *pdfname);
 | 
						|
int pdc_glyphname2unicode(pdc_core *pdc, const char *glyphname);
 | 
						|
const char *pdc_unicode2glyphname(pdc_core *pdc, pdc_ushort uv);
 | 
						|
pdc_ushort pdc_insert_glyphname(pdc_core *pdc, const char *glyphname);
 | 
						|
const char *pdc_insert_unicode(pdc_core *pdc, pdc_ushort uv);
 | 
						|
pdc_ushort pdc_register_glyphname(pdc_core *pdc, const char *glyphname,
 | 
						|
                                  pdc_ushort uv);
 | 
						|
void pdc_init_pglyphtab(pdc_core *pdc);
 | 
						|
void pdc_cleanup_pglyphtab(pdc_core *pdc);
 | 
						|
 | 
						|
 | 
						|
#endif  /* PC_ENCODING_H */
 |