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) 1999 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: spsdf.h,v 1.5 2002/06/16 05:00:54 lpd Exp $ */
18
/* Common output syntax and parameters for PostScript and PDF writers */
19
 
20
#ifndef spsdf_INCLUDED
21
#  define spsdf_INCLUDED
22
 
23
#include "gsparam.h"
24
 
25
/* Define an opaque type for streams. */
26
#ifndef stream_DEFINED
27
#  define stream_DEFINED
28
typedef struct stream_s stream;
29
#endif
30
 
31
/* ---------------- Symbolic data printing ---------------- */
32
 
33
/* Print a PostScript string in the most efficient form. */
34
#define PRINT_BINARY_OK 1
35
#define PRINT_ASCII85_OK 2
36
#define PRINT_HEX_NOT_OK 4
37
void s_write_ps_string(stream * s, const byte * str, uint size, int print_ok);
38
 
39
/*
40
 * Create a stream that just keeps track of how much has been written
41
 * to it.  We use this for measuring data that will be stored rather
42
 * than written to an actual stream.
43
 */
44
int s_alloc_position_stream(stream ** ps, gs_memory_t * mem);
45
 
46
/*
47
 * Create/release a parameter list for printing (non-default) filter
48
 * parameters.  This should probably migrate to a lower level....
49
 */
50
typedef struct param_printer_params_s {
51
    const char *prefix;		/* before entire object, if any params */
52
    const char *suffix;		/* after entire object, if any params */
53
    const char *item_prefix;	/* before each param */
54
    const char *item_suffix;	/* after each param */
55
    int print_ok;
56
} param_printer_params_t;
57
/*
58
 * The implementation structure should be opaque, but there are a few
59
 * clients that need to be able to stack-allocate it.
60
 */
61
typedef struct printer_param_list_s {
62
    gs_param_list_common;
63
    stream *strm;
64
    param_printer_params_t params;
65
    bool any;
66
} printer_param_list_t;
67
#define private_st_printer_param_list()	/* in spsdf.c */\
68
  gs_private_st_ptrs1(st_printer_param_list, printer_param_list_t,\
69
    "printer_param_list_t", printer_plist_enum_ptrs, printer_plist_reloc_ptrs,\
70
    strm)
71
 
72
#define param_printer_params_default_values 0, 0, 0, "\n", 0
73
extern const param_printer_params_t param_printer_params_default;
74
int s_alloc_param_printer(gs_param_list ** pplist,
75
			  const param_printer_params_t * ppp, stream * s,
76
			  gs_memory_t * mem);
77
void s_free_param_printer(gs_param_list * plist);
78
/* Initialize or release a list without allocating or freeing it. */
79
int s_init_param_printer(printer_param_list_t *prlist,
80
			 const param_printer_params_t * ppp, stream * s);
81
void s_release_param_printer(printer_param_list_t *prlist);
82
 
83
#endif /* spsdf_INCLUDED */