man ppd_emit_to_file (Fonctions bibliothèques) - Output device specific code.

NAME

ppd_emit_to_file, ppd_emit_to_fd - Output device specific code.

SYNOPSIS

#include <ppd/ppd.h>

gboolean ppd_emit( PpdFile * ppd,FILE *fp,PpdSectionOrder section );
gboolean ppd_emitfd( PpdFile * ppd, int fd,PpdSectionOrder section );

DESCRIPTION

The ppd_emit_* functions output the device specific code appropriate to the specified section that has not already been emitted.. The PpdFile pointer is obtained from opening a PPD file via the ppd_load(3) family of functions. The section can be any one of the following:

PPD_ORDER_ANY
Option code can be anywhere in the file
PPD_ORDER_DOCUMENT
Option code must be in the DocumentSetup section
PPD_ORDER_EXIT
Option code must be sent prior to the document
PPD_ORDER_JCL
Option code must be sent as a JCL command
PPD_ORDER_PAGE
Option code must be in the PageSetup section
PPD_ORDER_PROLOG
Option code must be in the Prolog section

The sections PPD_ORDER_DOCUMENT and PPD_ORDER_PAGE will also output code from the PPD_ORDER_ANY section. Once a code section has been emitted it is marked as such and will not be emitted unless it is re-marked.

EXAMPLE

	/* Setup code to emitted */
        ppd_mark_defaults(ppd);
        ppd_mark_option(ppd,"Duplex","DuplexNoTumble");
        ppd_mark_option(ppd,"PageSize","A4");

/* Emit initial code (including any reset and JCL code) */ ppd_emit_to_file(ppd,stdout,PPD_ORDER_EXIT); fputs(ppd->jcl_begin->str,stdout); ppd_emit_to_file(ppd, stdout, PPD_ORDER_JCL); fputs(ppd->jcl_ps->str, stdout);

/* Any header comments go here */ ...

/* Prolog section */ printf("%%%%BeginPrologn"); ppd_emit_to_file(ppd, stdout, PPD_ORDER_PROLOG); printf("%%%%EndPrologn");

/* Setup section */ printf("%%%%BeginSetupn"); ppd_emit_to_file(ppd, stdout, PPD_ORDER_DOCUMENT); printf("%%%%EndSetupn");

/* Main document begins */ for (...) { printf("%%%%Page: 1 1n"); /* Re-mark so that this is emitted on each page */ ppd_mark_option(ppd,"PageSize","A4"); printf("%%%%PageSetupn"); ppd_emit_to_file(ppd, stdout, PPD_ORDER_PAGE); printf("%%%%EndPageSetupn");

/* Page info goes here */ ... }

/* Send ending JCL code */ fputs(ppd->jcl_end->str,stdout);

SEE ALSO