Files correlati : pdflib Ricompilazione Demo : [ ] Commento : Aggiornata pdflib.dll alla versione 7.0.4 git-svn-id: svn://10.65.10.50/trunk@18580 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			1044 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			1044 lines
		
	
	
		
			38 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/*---------------------------------------------------------------------------*
 | 
						|
 |              PDFlib - A library for generating PDF on the fly             |
 | 
						|
 +---------------------------------------------------------------------------+
 | 
						|
 | Copyright (c) 1997-2006 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: p_intern.h,v 1.4 2009-03-23 08:51:17 guy Exp $
 | 
						|
 *
 | 
						|
 * PDFlib internal definitions
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef P_INTERN_H
 | 
						|
#define P_INTERN_H
 | 
						|
 | 
						|
#include "pdflib.h"
 | 
						|
 | 
						|
#include "ft_font.h"
 | 
						|
#include "pc_file.h"
 | 
						|
#include "pc_contain.h"
 | 
						|
 | 
						|
#include "p_keyconn.h"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/* ------------------------ PDFlib feature configuration  ------------------- */
 | 
						|
 | 
						|
/* changing the following is not recommended, and not supported */
 | 
						|
 | 
						|
/* BMP image support */
 | 
						|
#define PDF_BMP_SUPPORTED
 | 
						|
 | 
						|
/* GIF image support */
 | 
						|
#define PDF_GIF_SUPPORTED
 | 
						|
 | 
						|
/* JPEG image support */
 | 
						|
#define PDF_JPEG_SUPPORTED
 | 
						|
 | 
						|
/* JPEG2000 image support */
 | 
						|
#define PDF_JPX_SUPPORTED
 | 
						|
 | 
						|
/* PNG image support, requires HAVE_LIBZ */
 | 
						|
#define HAVE_LIBPNG
 | 
						|
 | 
						|
/* TIFF image support */
 | 
						|
#define HAVE_LIBTIFF
 | 
						|
 | 
						|
 | 
						|
/* -------------------------------- macros ------------------------------- */
 | 
						|
 | 
						|
/*
 | 
						|
 * Allocation chunk sizes. These don't affect the generated documents
 | 
						|
 * in any way. In order to save initial memory, however, you can lower
 | 
						|
 * the values. Increasing the values will bring some performance gain
 | 
						|
 * for large documents, but will waste memory for small ones.
 | 
						|
 */
 | 
						|
#define PAGES_CHUNKSIZE        512              /* pages */
 | 
						|
#define PNODES_CHUNKSIZE        64              /* page tree nodes */
 | 
						|
#define CONTENTS_CHUNKSIZE      64              /* page content streams */
 | 
						|
#define FONTS_CHUNKSIZE         16              /* document fonts */
 | 
						|
#define XOBJECTS_CHUNKSIZE     128              /* document xobjects */
 | 
						|
#define IMAGES_CHUNKSIZE       128              /* document images */
 | 
						|
#define OUTLINE_CHUNKSIZE      256              /* document outlines */
 | 
						|
#define NAMES_CHUNKSIZE        256              /* names */
 | 
						|
#define PDI_CHUNKSIZE           16              /* PDI instances */
 | 
						|
#define COLORSPACES_CHUNKSIZE   16              /* color spaces */
 | 
						|
#define PATTERN_CHUNKSIZE        4              /* pattern */
 | 
						|
#define SHADINGS_CHUNKSIZE       4              /* shadings */
 | 
						|
#define EXTGSTATE_CHUNKSIZE      4              /* external graphic states */
 | 
						|
#define T3GLYPHS_CHUNKSIZE     256              /* type 3 font glyph table */
 | 
						|
#define ICCPROFILE_CHUNKSIZE     4              /* ICC profiles */
 | 
						|
#define STRINGLISTS_CHUNKSIZE  128              /* document stringlists */
 | 
						|
#define ITEMS_CHUNKSIZE        256              /* PDFlib items */
 | 
						|
#define ITEMS_KIDS_CHUNKSIZE    64              /* PDFlib item's kids */
 | 
						|
#define ITEMS_MC_CHUNKSIZE      16              /* PDFlib item mc sequences */
 | 
						|
#define LAYER_DEP_CHUNKSIZE     16              /* PDFlib layer dependencies */
 | 
						|
#define RESLIST_CHUNKSIZE       16              /* per page resource list */
 | 
						|
 | 
						|
/* Acrobat 4 allows only 12 levels, but Acrobat 5 increases the limit to 28 */
 | 
						|
#define PDF_MAX_SAVE_LEVEL      28              /* max number of save levels */
 | 
						|
 | 
						|
#define PDF_MAX_PARAMSTRING    256              /* image parameter string */
 | 
						|
#define PDF_MAX_NAMESTRING     127              /* maximum name length */
 | 
						|
#define PDF_MAX_EVENTS          16              /* maximum number of events */
 | 
						|
#define PDF_MAX_DASHLENGTH       8              /* maximum number of dashes */
 | 
						|
 | 
						|
/* default PDF compatibility */
 | 
						|
#define PDF_DEF_COMPATIBILITY  PDC_1_6
 | 
						|
 | 
						|
 | 
						|
/* ------------------------ typedefs and enums --------------------------- */
 | 
						|
 | 
						|
/* PDFlib error numbers.
 | 
						|
*/
 | 
						|
#ifndef P_GENERR_H
 | 
						|
enum
 | 
						|
{
 | 
						|
#define         pdf_genNames    1
 | 
						|
#include        "p_generr.h"
 | 
						|
 | 
						|
    PDF_E_dummy
 | 
						|
};
 | 
						|
#endif
 | 
						|
 | 
						|
#define pdf_state_content  \
 | 
						|
    (pdf_state) (pdf_state_page | pdf_state_pattern | \
 | 
						|
                 pdf_state_template | pdf_state_glyph)
 | 
						|
 | 
						|
#define pdf_state_firsttest \
 | 
						|
    (pdf_state) (pdf_state_document | pdf_state_content | \
 | 
						|
                 pdf_state_path | pdf_state_font | \
 | 
						|
                 pdf_state_glyphmetrics)
 | 
						|
 | 
						|
#define pdf_state_documentall \
 | 
						|
    (pdf_state) (pdf_state_document | pdf_state_content | \
 | 
						|
                 pdf_state_path | pdf_state_font | \
 | 
						|
                 pdf_state_glyphmetrics | pdf_state_glyphignore)
 | 
						|
 | 
						|
#define pdf_state_all (pdf_state) (pdf_state_object | pdf_state_documentall)
 | 
						|
 | 
						|
#define PDF_STATE_STACK_SIZE    4
 | 
						|
 | 
						|
/* function-like macros.
 | 
						|
** must behave well wherever function calls are syntactically legal.
 | 
						|
*/
 | 
						|
#define PDF_GET_STATE(p)                                                \
 | 
						|
        ((p)->state_stack[(p)->state_sp])
 | 
						|
 | 
						|
#define PDF_SET_STATE(p, s)						\
 | 
						|
        ((p)->state_stack[(p)->state_sp] = (s))
 | 
						|
 | 
						|
/* statement-like macros.
 | 
						|
** must behave well wherever statements are syntactically legal.
 | 
						|
*/
 | 
						|
#define PDF_CHECK_STATE(p, s)						\
 | 
						|
        if ((((p)->state_stack[(p)->state_sp] & (s)) != 0)) {		\
 | 
						|
	} else pdc_error((p)->pdc,					\
 | 
						|
	    PDF_E_DOC_SCOPE, pdf_current_scope(p), 0, 0, 0)
 | 
						|
 | 
						|
#define PDF_PUSH_STATE(p, fn, s)                                        \
 | 
						|
        if ((p)->state_sp == PDF_STATE_STACK_SIZE - 1)                  \
 | 
						|
            pdc_error((p)->pdc, PDF_E_INT_SSTACK_OVER, fn, 0, 0, 0);	\
 | 
						|
        else                                                            \
 | 
						|
            (p)->state_stack[++(p)->state_sp] = (s)
 | 
						|
 | 
						|
#define PDF_POP_STATE(p, fn)                                            \
 | 
						|
        if ((p)->state_sp == 0)                                         \
 | 
						|
            pdc_error((p)->pdc, PDF_E_INT_SSTACK_UNDER, fn, 0, 0, 0);	\
 | 
						|
        else                                                            \
 | 
						|
            --(p)->state_sp
 | 
						|
 | 
						|
 | 
						|
/* -------------------------- structs ------------------------------ */
 | 
						|
 | 
						|
#ifndef PDI_DEFINED
 | 
						|
#define PDI_DEFINED
 | 
						|
typedef struct PDI_s		PDI;	/* The opaque PDI type */
 | 
						|
typedef struct pdi_pcos_s	pdi_pcos;
 | 
						|
typedef struct pdi_props_s	pdi_props;
 | 
						|
#endif
 | 
						|
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
    pdc_bool	info_mode;
 | 
						|
    PDI *	pi;
 | 
						|
    pdc_byte *	data;
 | 
						|
    pdi_pcos *	pcc;
 | 
						|
} pdf_pdi;
 | 
						|
 | 
						|
/* Opaque types which are detailed in the respective modules
 | 
						|
   in alphabetical order */
 | 
						|
typedef struct pdf_category_s pdf_category;
 | 
						|
typedef struct pdf_colorspace_s pdf_colorspace;
 | 
						|
typedef struct pdf_cstate_s pdf_cstate;
 | 
						|
typedef struct pdf_dest_s pdf_dest;
 | 
						|
typedef struct pdf_document_s pdf_document;
 | 
						|
typedef struct pdf_extgstateresource_s pdf_extgstateresource;
 | 
						|
typedef struct pdf_font_options_s pdf_font_options;
 | 
						|
typedef struct pdf_font_s pdf_font;
 | 
						|
typedef struct pdf_formfields_s pdf_formfields;
 | 
						|
typedef struct pdf_iccprofile_s pdf_iccprofile;
 | 
						|
typedef struct pdf_image_s pdf_image;
 | 
						|
typedef struct pdf_info_s pdf_info;
 | 
						|
typedef struct pdf_layers_s pdf_layers;
 | 
						|
typedef struct pdf_linearopts_s pdf_linearopts;
 | 
						|
typedef struct pdf_mbox_s pdf_mbox;
 | 
						|
typedef struct pdf_name_s pdf_name;
 | 
						|
typedef struct pdf_outline_s pdf_outline;
 | 
						|
typedef struct pdf_pages_s pdf_pages;
 | 
						|
typedef struct pdf_pattern_s pdf_pattern;
 | 
						|
typedef struct pdf_reslist_s pdf_reslist;
 | 
						|
typedef struct pdf_shading_s pdf_shading;
 | 
						|
typedef struct pdf_t3font_s pdf_t3font;
 | 
						|
typedef struct pdf_tags_s pdf_tags;
 | 
						|
typedef struct pdf_text_options_s pdf_text_options;
 | 
						|
typedef struct pdf_tstate_s pdf_tstate;
 | 
						|
typedef struct pdf_widget_s pdf_widget;
 | 
						|
typedef struct pdf_xobject_s pdf_xobject;
 | 
						|
 | 
						|
 | 
						|
/* -------------------- special graphics state -------------------- */
 | 
						|
typedef struct {
 | 
						|
    pdc_matrix  ctm;            /* current transformation matrix */
 | 
						|
    pdc_scalar  x;              /* current x coordinate */
 | 
						|
    pdc_scalar  y;              /* current y coordinate */
 | 
						|
 | 
						|
    pdc_scalar  startx;         /* starting x point of the subpath */
 | 
						|
    pdc_scalar  starty;         /* starting y point of the subpath */
 | 
						|
 | 
						|
    pdc_scalar  lwidth;         /* line width */
 | 
						|
    int         lcap;           /* line cap style */
 | 
						|
    int         ljoin;          /* line join style */
 | 
						|
    pdc_scalar  miter;          /* miter limit */
 | 
						|
    pdc_scalar  flatness;       /* path flatness */
 | 
						|
    pdc_bool    dashed;         /* line dashing in effect */
 | 
						|
} pdf_gstate;
 | 
						|
 | 
						|
/* ---------------------- page/pattern/template ----------------------- */
 | 
						|
typedef struct
 | 
						|
{
 | 
						|
    /* graphics, text, and color state.
 | 
						|
    */
 | 
						|
    int			sl;                             /* current save level */
 | 
						|
    pdf_gstate		gstate[PDF_MAX_SAVE_LEVEL];     /* graphics state */
 | 
						|
    pdf_tstate		*tstate;                        /* text state */
 | 
						|
    pdf_cstate	        *cstate;                        /* color state */
 | 
						|
 | 
						|
    pdf_text_options    *currto;        /* current text options */
 | 
						|
    pdf_fillrule        fillrule;       /* nonzero or evenodd fill rule */
 | 
						|
 | 
						|
    pdc_vtr *           mboxes;         /* matchbox chain */
 | 
						|
 | 
						|
    /* in update mode, the resource numbers generally don't start
 | 
						|
    ** with 0, but with a bias value derived from the original
 | 
						|
    ** page's resources.
 | 
						|
    */
 | 
						|
    int			cs_bias;	/* colorspaces */
 | 
						|
    int			eg_bias;	/* extended gstates */
 | 
						|
    int			fn_bias;	/* fonts */
 | 
						|
    int			pt_bias;	/* patterns */
 | 
						|
    int			sh_bias;	/* shadings */
 | 
						|
    int			xo_bias;	/* xobjects */
 | 
						|
} pdf_ppt;
 | 
						|
 | 
						|
/* Force graphics or color operator output, avoiding the optimization
 | 
						|
 * which checks whether the new value might be the same as the old.
 | 
						|
 * This is especially required for Type 3 glyph descriptions which
 | 
						|
 * inherit the surrounding page description's gstate parameters,
 | 
						|
 * and therefore even must write default values.
 | 
						|
 */
 | 
						|
#define PDF_FORCE_OUTPUT() (PDF_GET_STATE(p) == pdf_state_glyph)
 | 
						|
 | 
						|
/*
 | 
						|
 * *************************************************************************
 | 
						|
 * The core PDF context descriptor
 | 
						|
 * *************************************************************************
 | 
						|
 */
 | 
						|
 | 
						|
struct PDF_s {
 | 
						|
    /* -------------------------- general stuff ------------------------ */
 | 
						|
    unsigned long       magic;          /* poor man's integrity check */
 | 
						|
    void	(*freeproc)(PDF *p, void *mem);
 | 
						|
    pdc_core    *pdc;                   /* core context */
 | 
						|
    int         compatibility;          /* PDF version number * 10 */
 | 
						|
    pdf_errpol  errorpolicy;            /* error policy */
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    pdf_state   state_stack[PDF_STATE_STACK_SIZE];
 | 
						|
    int         state_sp;               /* state stack pointer */
 | 
						|
 | 
						|
    /* ------------------- PDF Catalog dictionary  --------------------- */
 | 
						|
    pdf_document *document;             /* document struct */
 | 
						|
 | 
						|
 | 
						|
    /* ------------------- PDF Info dictionary entries ----------------- */
 | 
						|
    pdf_info     *userinfo;             /* list of user-defined entries */
 | 
						|
 | 
						|
    /* -------------- I/O, error handling and memory management ------------- */
 | 
						|
    size_t	(*writeproc)(PDF *p, void *data, size_t size);
 | 
						|
    void        (*errorhandler)(PDF *p, int level, const char* msg);
 | 
						|
    void        *opaque;                /* user-specific, opaque data */
 | 
						|
 | 
						|
    /* ------------------------- PDF import ---------------------------- */
 | 
						|
    pdf_pdi     *pdi;                   /* PDI context array */
 | 
						|
    int         pdi_capacity;           /* currently allocated size */
 | 
						|
    pdc_pagebox pdi_usebox;
 | 
						|
    pdc_bool	pdi_strict;		/* strict PDF parser mode */
 | 
						|
    pdc_bstr *  pdi_parmbuf;            /* string buffer for pdi parms */
 | 
						|
 | 
						|
    /* ------------ stuff for hypertext functions ---------- */
 | 
						|
    pdc_encoding    hypertextencoding;  /* encoding of hypertexts */
 | 
						|
    pdc_text_format hypertextformat;    /* format of hypertexts */
 | 
						|
    int             hypertextcodepage;  /* OEM multi byte code-page number */
 | 
						|
    pdc_bool        usercoordinates;    /* interprete rectangle coordinates */
 | 
						|
                                        /* of hypertext funcs. in user space */
 | 
						|
    pdc_bool        usehyptxtenc;       /* use hypertextencoding */
 | 
						|
                                        /* for name strings */
 | 
						|
 | 
						|
 | 
						|
    /* ------------------- PDF output bookkeeping ------------------- */
 | 
						|
    pdc_id      procset_id;              /* id of constant ProcSet array */
 | 
						|
    pdc_output  *out;                   /* output manager */
 | 
						|
    pdc_id      length_id;              /* id of current stream's length*/
 | 
						|
    pdc_flush_state flush;              /* flush state */
 | 
						|
 | 
						|
    /* ------------------- page bookkeeping ------------------- */
 | 
						|
    pdf_pages  *doc_pages;		/* document wide page management */
 | 
						|
 | 
						|
    /* ------------------- document resources ------------------- */
 | 
						|
    pdf_font    *fonts;                 /* all fonts in document */
 | 
						|
    int         fonts_capacity;         /* currently allocated size */
 | 
						|
    int         fonts_number;           /* next available font number */
 | 
						|
    int         t3slot;                 /* slot of temporary type 3 font */
 | 
						|
    fnt_cmap_stack *cmst;               /* CMap stack handle */
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    pdf_xobject *xobjects;              /* all xobjects in document */
 | 
						|
    int         xobjects_capacity;      /* currently allocated size */
 | 
						|
    int         xobjects_number;        /* next available xobject slot */
 | 
						|
 | 
						|
    pdf_colorspace *colorspaces;        /* all color space resources */
 | 
						|
    int         colorspaces_capacity;   /* currently allocated size */
 | 
						|
    int         colorspaces_number;     /* next available color space number */
 | 
						|
 | 
						|
 | 
						|
    pdf_pattern *pattern;               /* all pattern resources */
 | 
						|
    int         pattern_capacity;       /* currently allocated size */
 | 
						|
    int         pattern_number;         /* next available pattern number */
 | 
						|
 | 
						|
    pdf_shading *shadings;               /* all shading resources */
 | 
						|
    int         shadings_capacity;       /* currently allocated size */
 | 
						|
    int         shadings_number;         /* next available shading number */
 | 
						|
 | 
						|
    pdf_extgstateresource *extgstates;  /* all ext. graphic state resources */
 | 
						|
    int         extgstates_capacity;    /* currently allocated size */
 | 
						|
    int         extgstates_number;      /* next available extgstate number */
 | 
						|
 | 
						|
    pdf_image  *images;                 /* all images in document */
 | 
						|
    int         images_capacity;        /* currently allocated size */
 | 
						|
 | 
						|
    pdc_vtr    *actions;                /* all actions in document */
 | 
						|
 | 
						|
 | 
						|
    /* ------------------ utilities ------------------- */
 | 
						|
    char        ***stringlists;         /* string lists */
 | 
						|
    int         stringlists_capacity;   /* currently allocated size */
 | 
						|
    int         stringlists_number;     /* next available string list number */
 | 
						|
    int         *stringlistsizes;       /* sizes of string lists */
 | 
						|
    int         utilstrlist_index;      /* index of utility string list */
 | 
						|
    int         utilstring_number;      /* next available utility string */
 | 
						|
 | 
						|
    /* ------------------- document outline tree ------------------- */
 | 
						|
    pdf_outline *outlines;              /* dynamic array of outlines */
 | 
						|
    int         outline_capacity;       /* currently allocated size */
 | 
						|
    int         outline_count;          /* total number of outlines */
 | 
						|
 | 
						|
    /* ------------------- name tree ------------------- */
 | 
						|
    pdf_name   *names;                  /* page ids */
 | 
						|
    int         names_capacity;
 | 
						|
    int         names_number;      	/* next available names number */
 | 
						|
 | 
						|
    /* -------------- page/pattern/template specific stuff -------------- */
 | 
						|
    pdf_ppt *	curr_ppt;		/* current ppt descriptor */
 | 
						|
    pdc_id      res_id;                 /* id of this pattern/templ res dict */
 | 
						|
 | 
						|
    pdc_scalar  ydirection;             /* direction of y axis of default */
 | 
						|
                                        /* system rel. to viewport (1 or -1) */
 | 
						|
 | 
						|
    pdf_renderingintent rendintent;     /* RenderingIntent */
 | 
						|
 | 
						|
    pdc_bool    preserveoldpantonenames;/* preserve old PANTONE names */
 | 
						|
    pdc_bool    spotcolorlookup;        /* use internal look-up table for
 | 
						|
                                         * color values */
 | 
						|
 | 
						|
    /* ------------------------ template stuff ----------------------- */
 | 
						|
    int         templ;                  /* current template if in templ. state*/
 | 
						|
 | 
						|
    /* --------------- other font and text stuff ---------------- */
 | 
						|
 | 
						|
    pdf_font_options    *currfo;        /* current font settings */
 | 
						|
 | 
						|
    pdc_glyphcheck      glyphcheck;     /* check for unavailable glyphs */
 | 
						|
    pdc_text_format     textformat;     /* text storage format */
 | 
						|
    pdc_bool		in_text;	/* currently in BT/ET section */
 | 
						|
 | 
						|
    /* ------------------------ miscellaneous ------------------------ */
 | 
						|
    char        debug[256];             /* debug flags */
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    /* ------- deprecated stuff because of deprecated parameter ---------- */
 | 
						|
    pdf_borderstyle     border_style;
 | 
						|
    pdc_scalar          border_width;
 | 
						|
    pdc_scalar          border_red;
 | 
						|
    pdc_scalar          border_green;
 | 
						|
    pdc_scalar          border_blue;
 | 
						|
    pdc_scalar          border_dash1;
 | 
						|
    pdc_scalar          border_dash2;
 | 
						|
    pdf_dest            *bookmark_dest;
 | 
						|
    char                *launchlink_parameters;
 | 
						|
    char                *launchlink_operation;
 | 
						|
    char                *launchlink_defaultdir;
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
/* Data source for images, compression, ASCII encoding, fonts, etc. */
 | 
						|
typedef struct PDF_data_source_s PDF_data_source;
 | 
						|
struct PDF_data_source_s {
 | 
						|
    pdc_byte            *next_byte;
 | 
						|
    size_t              bytes_available;
 | 
						|
    void                (*init)(PDF *, PDF_data_source *src);
 | 
						|
    int                 (*fill)(PDF *, PDF_data_source *src);
 | 
						|
    void                (*terminate)(PDF *, PDF_data_source *src);
 | 
						|
 | 
						|
    pdc_byte            *buffer_start;
 | 
						|
    size_t              buffer_length;
 | 
						|
    void                *private_data;
 | 
						|
    long                offset;         /* start of data to read */
 | 
						|
    long                length;         /* length of data to read */
 | 
						|
    long                total;          /* total bytes read so far */
 | 
						|
};
 | 
						|
 | 
						|
/* ------ Private functions for library-internal use only --------- */
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
   (((((OpenVMS porting note)))))
 | 
						|
 | 
						|
   Symbols are restricted to <= 31 bytes on OpenVMS systems....
 | 
						|
   Please truncate new function names to fit this silly restriction!
 | 
						|
 | 
						|
   (((((OpenVMS porting note)))))
 | 
						|
*/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_actions.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__create_action(PDF *p, const char *type, const char *optlist);
 | 
						|
 | 
						|
void pdf_delete_actions(PDF *p);
 | 
						|
int pdf_get_max_action(PDF *p);
 | 
						|
pdc_bool pdf_parse_and_write_actionlist(PDF *p, pdf_event_object eventobj,
 | 
						|
                pdc_id *act_idlist, const char *optlist);
 | 
						|
pdc_bool pdf_write_action_entries(PDF *p, pdf_event_object eventobj,
 | 
						|
                pdc_id *act_idlist);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_annots.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__add_launchlink(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *filename);
 | 
						|
void pdf__add_locallink(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, int page, const char *optlist);
 | 
						|
void pdf__add_note(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *contents, int len_cont,
 | 
						|
        const char *title, int len_title, const char *icon, int kopen);
 | 
						|
void pdf__add_pdflink(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *filename, int page,
 | 
						|
        const char *optlist);
 | 
						|
void pdf__add_weblink(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *url);
 | 
						|
void pdf__attach_file(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *filename, int len_filename,
 | 
						|
        const char *description, int len_descr, const char *author,
 | 
						|
	int len_auth, const char *mimetype, const char *icon);
 | 
						|
void pdf__create_annotation(PDF *p, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *type, const char *optlist);
 | 
						|
void pdf__set_border_color(PDF *p, pdc_scalar red, pdc_scalar green,
 | 
						|
        pdc_scalar blue);
 | 
						|
void pdf__set_border_dash(PDF *p, pdc_scalar b, pdc_scalar w);
 | 
						|
void pdf__set_border_style(PDF *p, const char *style, pdc_scalar width);
 | 
						|
 | 
						|
void pdf_init_annot_params(PDF *p);
 | 
						|
void pdf_cleanup_annot_params(PDF *p);
 | 
						|
pdc_id pdf_write_annots_root(PDF *p, pdc_vtr *annots, pdf_widget *widgetlist);
 | 
						|
void pdf_write_page_annots(PDF *p, pdc_vtr *annots);
 | 
						|
 | 
						|
void pdf_create_link(PDF *p, const char *type, pdc_scalar llx, pdc_scalar lly,
 | 
						|
        pdc_scalar urx, pdc_scalar ury, const char *annopts,
 | 
						|
        const char *utext, int len);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_color.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
 | 
						|
void pdf__setcolor(PDF *p, const char *fstype, const char *colorspace,
 | 
						|
        pdc_scalar c1, pdc_scalar c2, pdc_scalar c3, pdc_scalar c4);
 | 
						|
 | 
						|
void pdf_init_cstate(PDF *p);
 | 
						|
void pdf_save_cstate(PDF *p);
 | 
						|
void pdf_cleanup_page_cstate(PDF *p, pdf_ppt *ppt);
 | 
						|
void pdf_init_colorspaces(PDF *p);
 | 
						|
void pdf_set_default_color(PDF *p, pdc_bool reset);
 | 
						|
void pdf_write_page_colorspaces(PDF *p);
 | 
						|
void pdf_mark_page_colorspace(PDF *p, int n);
 | 
						|
void pdf_write_doc_colorspaces(PDF *p);
 | 
						|
void pdf_write_colorspace(PDF *p, int slot, pdc_bool direct);
 | 
						|
void pdf_cleanup_colorspaces(PDF *p);
 | 
						|
void pdf_write_colormap(PDF *p, int slot);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_document.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__begin_document(PDF *p, const char *filename, int len,
 | 
						|
                const char *optlist);
 | 
						|
 | 
						|
void pdf__begin_document_callback(PDF *p, writeproc_t writeproc,
 | 
						|
                const char *optlist);
 | 
						|
 | 
						|
void pdf__end_document(PDF *p, const char *optlist);
 | 
						|
 | 
						|
void pdf_cleanup_document(PDF *p);
 | 
						|
void pdf_fix_openmode(PDF *p);
 | 
						|
void pdf_insert_name(PDF *p, const char *name, pdf_nametree_type type,
 | 
						|
        pdc_id obj_id);
 | 
						|
pdc_id pdf_get_id_from_nametree(PDF *p, pdf_nametree_type type,
 | 
						|
        const char *name);
 | 
						|
char *pdf_parse_and_write_metadata(PDF *p, const char *optlist, pdc_bool output,
 | 
						|
        int *outlen);
 | 
						|
pdc_off_t pdf_check_file(PDF *p, const char *filename, pdc_bool verbose);
 | 
						|
void pdf_embed_file(PDF *p, pdc_id obj_id, const char *filename,
 | 
						|
                const char *mimetype, pdc_off_t filesize);
 | 
						|
 | 
						|
/* deprecated functions: */
 | 
						|
void pdf_set_flush(PDF *p, const char *flush);
 | 
						|
void pdf_set_uri(PDF *p, const char *uri);
 | 
						|
void pdf_set_compatibility(PDF *p, const char *compatibility);
 | 
						|
void pdf_set_openmode(PDF *p, const char *openmode);
 | 
						|
void pdf_set_openaction(PDF *p, const char *openaction);
 | 
						|
void pdf_set_viewerpreference(PDF *p, const char *viewerpreference);
 | 
						|
const char *pdf__get_buffer(PDF *p, long *size);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_draw.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
 | 
						|
void pdf__arc(PDF *p, pdc_scalar x, pdc_scalar y,
 | 
						|
                pdc_scalar r, pdc_scalar alpha, pdc_scalar beta);
 | 
						|
void pdf__arcn(PDF *p, pdc_scalar x, pdc_scalar y,
 | 
						|
                pdc_scalar r, pdc_scalar alpha, pdc_scalar beta);
 | 
						|
void pdf__circle(PDF *p, pdc_scalar x, pdc_scalar y, pdc_scalar r);
 | 
						|
void pdf__clip(PDF *p);
 | 
						|
void pdf__closepath(PDF *p);
 | 
						|
void pdf__closepath_fill_stroke(PDF *p);
 | 
						|
void pdf__closepath_stroke(PDF *p);
 | 
						|
void pdf__curveto(PDF *p, pdc_scalar x_1, pdc_scalar y_1,
 | 
						|
                pdc_scalar x_2, pdc_scalar y_2, pdc_scalar x_3, pdc_scalar y_3);
 | 
						|
void pdf__endpath(PDF *p);
 | 
						|
void pdf__fill(PDF *p);
 | 
						|
void pdf__fill_stroke(PDF *p);
 | 
						|
void pdf__lineto(PDF *p, pdc_scalar x, pdc_scalar y);
 | 
						|
void pdf__rlineto(PDF *p, pdc_scalar x, pdc_scalar y);
 | 
						|
void pdf__moveto(PDF *p, pdc_scalar x, pdc_scalar y);
 | 
						|
void pdf__rcurveto(PDF *p, pdc_scalar x_1, pdc_scalar y_1,
 | 
						|
                pdc_scalar x_2, pdc_scalar y_2, pdc_scalar x_3, pdc_scalar y_3);
 | 
						|
void pdf__rect(PDF *p, pdc_scalar x, pdc_scalar y,
 | 
						|
                pdc_scalar width, pdc_scalar height);
 | 
						|
void pdf__rmoveto(PDF *p, pdc_scalar x, pdc_scalar y);
 | 
						|
void pdf__stroke(PDF *p);
 | 
						|
 | 
						|
void pdf_rrcurveto(PDF *p, pdc_scalar x_1, pdc_scalar y_1,
 | 
						|
                pdc_scalar x_2, pdc_scalar y_2, pdc_scalar x_3, pdc_scalar y_3);
 | 
						|
void pdf_hvcurveto(PDF *p, pdc_scalar x_1, pdc_scalar x_2,
 | 
						|
                pdc_scalar y_2, pdc_scalar y_3);
 | 
						|
void pdf_vhcurveto(PDF *p, pdc_scalar y_1, pdc_scalar x_2,
 | 
						|
                pdc_scalar y_2, pdc_scalar x_3);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_encoding.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__encoding_set_char(PDF *p, const char *encoding, int slot,
 | 
						|
        const char *glyphname, int uv);
 | 
						|
 | 
						|
pdc_encoding pdf_get_hypertextencoding_param(PDF *p, int *codepage);
 | 
						|
pdc_encoding pdf_get_hypertextencoding(PDF *p, const char *encoding,
 | 
						|
        int *codepage, pdc_bool verbose);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_filter.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf_data_source_buf_fill(PDF *p, PDF_data_source *src);
 | 
						|
void pdf_data_source_file_init(PDF *p, PDF_data_source *src);
 | 
						|
int pdf_data_source_file_fill(PDF *p, PDF_data_source *src);
 | 
						|
void pdf_data_source_file_terminate(PDF *p, PDF_data_source *src);
 | 
						|
void pdf_copy_stream(PDF *p, PDF_data_source *src, pdc_bool compress);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_font.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
double pdf__info_font(PDF *p, int ifont, const char *keyword,
 | 
						|
        const char *optlist);
 | 
						|
int pdf__load_font(PDF *p, const char *fontname, int len,
 | 
						|
        const char *encoding, const char *optlist);
 | 
						|
 | 
						|
void pdf_init_font_options(PDF *p, pdf_font_options *fo);
 | 
						|
void pdf_cleanup_font_curroptions(PDF *p);
 | 
						|
void pdf_cleanup_font_options(PDF *p, pdf_font_options *fo);
 | 
						|
void pdf_init_font(PDF *p, pdf_font *font, pdf_font_options *fo);
 | 
						|
void pdf_cleanup_font(PDF *p, pdf_font *font);
 | 
						|
void pdf_init_fonts(PDF *p);
 | 
						|
void pdf_cleanup_fonts(PDF *p);
 | 
						|
int pdf_insert_font(PDF *p, pdf_font *font);
 | 
						|
void pdf_write_doc_fonts(PDF *p);
 | 
						|
void pdf_write_page_fonts(PDF *p);
 | 
						|
void pdf_get_page_fonts(PDF *p, pdf_reslist *rl);
 | 
						|
void pdf_mark_page_font(PDF *p, int ft);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_gstate.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__concat(PDF *p, pdc_scalar a, pdc_scalar b, pdc_scalar c, pdc_scalar d,
 | 
						|
                pdc_scalar e, pdc_scalar f);
 | 
						|
void pdf__initgraphics(PDF *p);
 | 
						|
void pdf__restore(PDF *p);
 | 
						|
void pdf__rotate(PDF *p, pdc_scalar phi);
 | 
						|
void pdf__save(PDF *p);
 | 
						|
void pdf__scale(PDF *p, pdc_scalar sx, pdc_scalar sy);
 | 
						|
void pdf__setdash(PDF *p, pdc_scalar b, pdc_scalar w);
 | 
						|
void pdf__setdashpattern(PDF *p, const char *optlist);
 | 
						|
void pdf__setflat(PDF *p, pdc_scalar flatness);
 | 
						|
void pdf__setlinecap(PDF *p, int linecap);
 | 
						|
void pdf__setlinejoin(PDF *p, int linejoin);
 | 
						|
void pdf__setlinewidth(PDF *p, pdc_scalar width);
 | 
						|
void pdf__setmatrix(PDF *p, pdc_scalar a, pdc_scalar b, pdc_scalar c,
 | 
						|
                pdc_scalar d, pdc_scalar e, pdc_scalar f);
 | 
						|
void pdf__setmiterlimit(PDF *p, pdc_scalar miter);
 | 
						|
void pdf__skew(PDF *p, pdc_scalar alpha, pdc_scalar beta);
 | 
						|
void pdf__translate(PDF *p, pdc_scalar tx, pdc_scalar ty);
 | 
						|
 | 
						|
void pdf_setmatrix_e(PDF *p, pdc_matrix *n);
 | 
						|
void pdf_init_gstate(PDF *p);
 | 
						|
void pdf_concat_raw(PDF *p, pdc_matrix *m);
 | 
						|
void pdf_reset_gstate(PDF *p);
 | 
						|
void pdf_set_topdownsystem(PDF *p, pdc_scalar height);
 | 
						|
void pdf_setdashpattern_internal(PDF *p, pdc_scalar *darray, int length,
 | 
						|
        pdc_scalar phase);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_hyper.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__add_bookmark(PDF *p, const char *text, int len, int parent, int open);
 | 
						|
void pdf__add_nameddest(PDF *p, const char *name, int len, const char *optlist);
 | 
						|
int pdf__create_bookmark(PDF *p, const char *text, int len,
 | 
						|
        const char *optlist);
 | 
						|
void pdf__set_info(PDF *p, const char *key, const char *value, int len);
 | 
						|
 | 
						|
pdf_dest *pdf_init_destination(PDF *p);
 | 
						|
pdf_dest *pdf_parse_destination_optlist(PDF *p, const char *optlist,
 | 
						|
        int page, pdf_destuse destuse);
 | 
						|
void pdf_cleanup_destination(PDF *p, pdf_dest *dest);
 | 
						|
void pdf_write_destination(PDF *p, pdf_dest *dest);
 | 
						|
pdf_dest *pdf_get_option_destname(PDF *p, pdc_resopt *resopts,
 | 
						|
        pdc_encoding hypertextencoding, int hypertextcodepage);
 | 
						|
void pdf_init_outlines(PDF *p);
 | 
						|
void pdf_write_outlines(PDF *p);
 | 
						|
void pdf_write_outline_root(PDF *p);
 | 
						|
void pdf_cleanup_outlines(PDF *p);
 | 
						|
void pdf_feed_digest_info(PDF *p);
 | 
						|
pdc_id pdf_write_info(PDF *p, pdc_bool moddate);
 | 
						|
void pdf_cleanup_info(PDF *p);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_image.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__add_thumbnail(PDF *p, int image);
 | 
						|
void pdf__close_image(PDF *p, int image);
 | 
						|
void pdf__fit_image(PDF *p, int image, pdc_scalar x, pdc_scalar y,
 | 
						|
        const char *optlist);
 | 
						|
int pdf__load_image(PDF *p, const char *imagetype, const char *filename,
 | 
						|
        const char *optlist);
 | 
						|
 | 
						|
void pdf_grow_images(PDF *p);
 | 
						|
void pdf_put_image(PDF *p, int im, pdc_bool firststrip,
 | 
						|
	pdc_bool checkcontentstream);
 | 
						|
void pdf_put_inline_image(PDF *p, int im);
 | 
						|
void pdf_init_images(PDF *p);
 | 
						|
void pdf_cleanup_images(PDF *p);
 | 
						|
void pdf_cleanup_image(PDF *p, int im);
 | 
						|
void pdf_get_image_size(PDF *p, int im, pdc_scalar *width, pdc_scalar *height);
 | 
						|
void pdf_get_image_resolution(PDF *p, int im, pdc_scalar *dpi_x,
 | 
						|
        pdc_scalar *dpi_y);
 | 
						|
int pdf_get_image_colorspace(PDF *p, int im);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_mbox.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
double pdf__info_matchbox(PDF *p, const char *boxname, int len, int num,
 | 
						|
        const char *keyword);
 | 
						|
 | 
						|
pdc_vtr *pdf_new_mboxes(PDF *p, pdf_mbox *mbox, pdc_vtr *mboxes);
 | 
						|
pdf_mbox *pdf_parse_mbox_optlist(PDF *p, const char *optlist);
 | 
						|
pdf_mbox *pdf_get_mbox(PDF *p, pdc_vtr *mboxes, const char *name, int number,
 | 
						|
        int *o_count);
 | 
						|
void pdf_delete_mbox(PDF *p, pdf_mbox *mbox);
 | 
						|
void pdf_add_page_mbox(PDF *p, pdf_mbox *mbox);
 | 
						|
 | 
						|
pdc_bool pdf_get_mbox_drawborder(PDF *p, pdf_mbox *mbox, int keycode);
 | 
						|
void pdf_set_mbox_rectangle(PDF *p, pdf_mbox *mbox, pdc_rectangle *rect,
 | 
						|
        int flags);
 | 
						|
void pdf_get_mbox_rectangle(PDF *p, pdf_mbox *mbox, pdc_vector *polyline);
 | 
						|
void pdf_draw_mbox_rectangle(PDF *p, pdf_mbox *mbox, pdc_bool saverestore);
 | 
						|
const char *pdf_get_usematchbox(PDF *p, const char *option, const char *optval,
 | 
						|
        int *istart, int *istop);
 | 
						|
 | 
						|
void pdf_set_position_values(PDF *p, pdc_scalar *i_position, int nv);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_object.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__delete(PDF *p);
 | 
						|
 | 
						|
PDF *pdf__new(errorproc_t errorhandler, allocproc_t allocproc,
 | 
						|
        reallocproc_t reallocproc, freeproc_t freeproc, void *opaque);
 | 
						|
 | 
						|
const char *pdf_current_scope(PDF *p);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_page.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__begin_page(PDF *p, pdc_scalar width, pdc_scalar height);
 | 
						|
void pdf__begin_page_ext(PDF *p, pdc_scalar width, pdc_scalar height,
 | 
						|
        const char *optlist);
 | 
						|
void pdf__end_page_ext(PDF *p, const char *optlist);
 | 
						|
void pdf__resume_page(PDF *p, const char *optlist);
 | 
						|
void pdf__suspend_page(PDF *p, const char *optlist);
 | 
						|
void pdf_pg_resume(PDF *p, int pageno);
 | 
						|
void pdf_pg_suspend(PDF *p);
 | 
						|
 | 
						|
void pdf_init_pages(PDF *p, const char **groups, int n_groups);
 | 
						|
void pdf_init_pages2(PDF *p);
 | 
						|
void pdf_check_suspended_pages(PDF *p);
 | 
						|
void pdf_cleanup_pages(PDF *p);
 | 
						|
pdc_id pdf_get_page_id(PDF *p, int n);
 | 
						|
int pdf_current_page(PDF *p);
 | 
						|
int pdf_current_page_id(PDF *p);
 | 
						|
int pdf_last_page(PDF *p);
 | 
						|
int pdf_search_page_fwd(PDF *p, int start_page, pdc_id id);
 | 
						|
int pdf_search_page_bwd(PDF *p, int start_page, pdc_id id);
 | 
						|
int pdf_xlat_pageno(PDF *p, int pageno, const char *groupname);
 | 
						|
 | 
						|
pdc_scalar pdf_get_pageheight(PDF *p);
 | 
						|
const pdc_rectangle *pdf_get_pagebox(PDF *p, pdf_pagebox box);
 | 
						|
void pdf_set_pagebox_llx(PDF *p, pdf_pagebox box, pdc_scalar llx);
 | 
						|
void pdf_set_pagebox_lly(PDF *p, pdf_pagebox box, pdc_scalar lly);
 | 
						|
void pdf_set_pagebox_urx(PDF *p, pdf_pagebox box, pdc_scalar urx);
 | 
						|
void pdf_set_pagebox_ury(PDF *p, pdf_pagebox box, pdc_scalar ury);
 | 
						|
void pdf_set_pagebox(PDF *p, pdf_pagebox box, pdc_scalar llx, pdc_scalar lly,
 | 
						|
	pdc_scalar urx, pdc_scalar ury);
 | 
						|
 | 
						|
pdc_vtr *pdf_get_annots_list(PDF *p);
 | 
						|
void pdf_set_annots_list(PDF *p, pdc_vtr *annots);
 | 
						|
pdc_id pdf_get_thumb_id(PDF *p);
 | 
						|
void pdf_set_thumb_id(PDF *p, pdc_id id);
 | 
						|
void pdf_set_autotgroup(PDF *p, pdc_bool autotgroup);
 | 
						|
 | 
						|
void pdf_begin_contents_section(PDF *p);
 | 
						|
void pdf_end_contents_section(PDF *p);
 | 
						|
void pdf_add_reslist(PDF *p, pdf_reslist *rl, int num);
 | 
						|
pdc_id pdf_write_pagelabels(PDF *p);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_parameter.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
const char *pdf__get_parameter(PDF *p, const char *key, double modifier);
 | 
						|
double pdf__get_value(PDF *p, const char *key, double modifier);
 | 
						|
void pdf__set_parameter(PDF *p, const char *key, const char *value);
 | 
						|
void pdf__set_value(PDF *p, const char *key, double value);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_pattern.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__begin_pattern(PDF *p,
 | 
						|
        pdc_scalar width, pdc_scalar height, pdc_scalar xstep, pdc_scalar ystep,
 | 
						|
        int painttype);
 | 
						|
 | 
						|
void pdf__end_pattern(PDF *p);
 | 
						|
 | 
						|
void pdf_init_pattern(PDF *p);
 | 
						|
void pdf_write_page_pattern(PDF *p);
 | 
						|
void pdf_get_page_patterns(PDF *p, pdf_reslist *rl);
 | 
						|
void pdf_mark_page_pattern(PDF *p, int n);
 | 
						|
void pdf_cleanup_pattern(PDF *p);
 | 
						|
void pdf_grow_pattern(PDF *p);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_shading.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__shading(PDF *p, const char *shtype, pdc_scalar x_0, pdc_scalar y_0,
 | 
						|
        pdc_scalar x_1, pdc_scalar y_1, pdc_scalar c_1, pdc_scalar c_2,
 | 
						|
        pdc_scalar c_3, pdc_scalar c_4, const char *optlist);
 | 
						|
int pdf__shading_pattern(PDF *p, int shading, const char *optlist);
 | 
						|
void pdf__shfill(PDF *p, int shading);
 | 
						|
 | 
						|
void pdf_init_shadings(PDF *p);
 | 
						|
void pdf_write_page_shadings(PDF *p);
 | 
						|
void pdf_get_page_shadings(PDF *p, pdf_reslist *rl);
 | 
						|
void pdf_mark_page_shading(PDF *p, int n);
 | 
						|
void pdf_cleanup_shadings(PDF *p);
 | 
						|
int pdf_get_shading_painttype(PDF *p);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_template.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__begin_template(PDF *p, pdc_scalar width, pdc_scalar height,
 | 
						|
        const char *optlist);
 | 
						|
void pdf__end_template(PDF *p);
 | 
						|
int pdf_embed_image(PDF *p, int im);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_text.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__fit_textline(PDF *p, const char *text, int len,
 | 
						|
        pdc_scalar x, pdc_scalar y, const char *optlist);
 | 
						|
double pdf__info_textline(PDF *p, const char *text, int len,
 | 
						|
        const char *keyword, const char *optlist);
 | 
						|
void pdf__setfont(PDF *p, int font, pdc_scalar fontsize);
 | 
						|
void pdf__set_text_pos(PDF *p, pdc_scalar x, pdc_scalar y);
 | 
						|
void pdf__show_text(PDF *p, const char *text, int len, pdc_bool cont);
 | 
						|
void pdf__xshow(PDF *p, const char *text, int len,
 | 
						|
        const pdc_scalar *xadvancelist);
 | 
						|
int pdf__show_boxed(PDF *p, const char *text, int len,
 | 
						|
        pdc_scalar left, pdc_scalar top, pdc_scalar width, pdc_scalar height,
 | 
						|
        const char *hmode, const char *feature);
 | 
						|
pdc_scalar pdf__stringwidth(PDF *p, const char *text, int len,
 | 
						|
        int font, pdc_scalar size);
 | 
						|
 | 
						|
void pdf_init_tstate(PDF *p);
 | 
						|
void pdf_cleanup_page_tstate(PDF *p, pdf_ppt *ppt);
 | 
						|
void pdf_save_tstate(PDF *p);
 | 
						|
void pdf_restore_currto(PDF *p);
 | 
						|
void pdf_set_tstate(PDF *p, pdc_scalar value, pdf_text_optflags flag);
 | 
						|
double pdf_get_tstate(PDF *p, pdf_text_optflags tflag);
 | 
						|
void pdf_end_text(PDF *p);
 | 
						|
void pdf_reset_tstate(PDF *p);
 | 
						|
int pdf_get_font(PDF *p);
 | 
						|
void pdf_put_fieldtext(PDF *p, const char *text, int font);
 | 
						|
int pdf_get_fontsize_option(PDF *p, int font, pdc_resopt *resopts,
 | 
						|
        pdc_scalar *fontsize);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_type3.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
void pdf__begin_font(PDF *p, const char *fontname, int len,
 | 
						|
        pdc_scalar a, pdc_scalar b, pdc_scalar c, pdc_scalar d,
 | 
						|
        pdc_scalar e, pdc_scalar f, const char *optlist);
 | 
						|
void pdf__begin_glyph(PDF *p, const char *glyphname, pdc_scalar wx,
 | 
						|
        pdc_scalar llx, pdc_scalar lly, pdc_scalar urx, pdc_scalar ury);
 | 
						|
void pdf__end_font(PDF *p);
 | 
						|
void pdf__end_glyph(PDF *p);
 | 
						|
 | 
						|
int pdf_get_t3colorized(PDF *p);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_util.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
const char *pdf__utf32_to_utf16(PDF *p, const char *utf32string, int len,
 | 
						|
        const char *ordering, int *outlen);
 | 
						|
const char *pdf__utf16_to_utf8(PDF *p, const char *utf16string, int len,
 | 
						|
        int *outlen);
 | 
						|
const char *pdf__utf8_to_utf16(PDF *p, const char *utf8string,
 | 
						|
        const char *ordering, int *outlen);
 | 
						|
 | 
						|
void pdf_check_textformat(PDF *p, pdc_text_format textformat);
 | 
						|
void pdf_check_hypertextformat(PDF *p, pdc_text_format hypertextformat);
 | 
						|
void pdf_check_hypertextencoding(PDF *p, pdc_encoding hypertextencoding);
 | 
						|
void pdf_put_pdfname(PDF *p, const char *name);
 | 
						|
pdc_encoding pdf_get_hypertextencoding_opt(PDF *p, pdc_resopt *resopts,
 | 
						|
        int *codepage, pdc_bool verbose);
 | 
						|
char *pdf_convert_hypertext_depr(PDF *p, const char *text, int len);
 | 
						|
char *pdf_convert_hypertext(PDF *p, const char *text, int len,
 | 
						|
        pdc_text_format hypertextformat, pdc_encoding hypertextencoding,
 | 
						|
        int codepage, int *outlen, pdc_bool oututf8, pdc_bool verbose);
 | 
						|
char *pdf_convert_pdfstring(PDF *p, const char *text, int inlen, int convflags,
 | 
						|
        int *outlen);
 | 
						|
void pdf_put_hypertext(PDF *p, const char *text);
 | 
						|
char *pdf_convert_name(PDF *p, const char *name, int len, int flags);
 | 
						|
const char *pdf_convert_filename(PDF *p, const char *filename, int len,
 | 
						|
        const char *paramname, int flags);
 | 
						|
void pdf_add_pdflib_resource(PDF *p, const char *category, const char *resname);
 | 
						|
void pdf_put_pdffilename(PDF *p, const char *text);
 | 
						|
void pdf_put_pdfunifilename(PDF *p, const char *text);
 | 
						|
int pdf_check_opt_handle(void *opaque, int handle, pdc_opttype type);
 | 
						|
void pdf_check_handle(PDF *p, int value, pdc_opttype type);
 | 
						|
void pdf_set_clientdata(PDF *p, pdc_clientdata *clientdata);
 | 
						|
void pdf_init_stringlists(PDF *p);
 | 
						|
int pdf_insert_stringlist(PDF *p, char **stringlist, int ns);
 | 
						|
void pdf_cleanup_stringlists(PDF *p);
 | 
						|
int pdf_insert_utilstring(PDF *p, const char *utilstring, pdc_bool kdup);
 | 
						|
const char *pdf_get_utilstring(PDF *p, int i);
 | 
						|
int pdf_get_opt_textlist(PDF *p, const char *keyword, pdc_resopt *resopts,
 | 
						|
       pdc_encoding enc, int codepage, pdc_bool ishypertext,
 | 
						|
       const char *fieldname, char **text, char ***textlist);
 | 
						|
char *pdf_get_opt_filename(PDF *p, const char *keyword, pdc_resopt *resopts,
 | 
						|
        pdc_encoding enc, int codepage);
 | 
						|
char *pdf_get_opt_utf8name(PDF *p, const char *keyword, pdc_resopt *resopts);
 | 
						|
pdc_bool pdf_get_errorpolicy(PDF *p, pdc_resopt *resopts, pdc_bool verbose);
 | 
						|
 | 
						|
 | 
						|
/**********************
 | 
						|
 *
 | 
						|
 *  p_xgstate.c
 | 
						|
 *
 | 
						|
 **********************/
 | 
						|
 | 
						|
int pdf__create_gstate(PDF *p, const char *optlist);
 | 
						|
void pdf__set_gstate(PDF *p, int gstate);
 | 
						|
 | 
						|
void pdf_init_extgstates(PDF *p);
 | 
						|
void pdf_write_page_extgstates(PDF *p);
 | 
						|
void pdf_get_page_extgstates(PDF *p, pdf_reslist *rl);
 | 
						|
void pdf_mark_page_extgstate(PDF *p, int n);
 | 
						|
void pdf_write_doc_extgstates(PDF *p);
 | 
						|
void pdf_cleanup_extgstates(PDF *p);
 | 
						|
pdc_id  pdf_get_gstate_id(PDF *p, int gstate);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif  /* P_INTERN_H */
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |