ppd_emit_to_file(3)
Output device specific code.
Description
ppd_emit_to_file
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("%%%%BeginProlog0);
ppd_emit_to_file(ppd, stdout, PPD_ORDER_PROLOG);
printf("%%%%EndProlog0);
|
/* Setup section */ |
printf("%%%%BeginSetup0);
ppd_emit_to_file(ppd, stdout, PPD_ORDER_DOCUMENT);
printf("%%%%EndSetup0);
|
/* Main document begins */ |
|||
|
for (...) { |
|||
|
printf("%%%%Page: 1 10); | |||
|
/* Re-mark so that this is emitted on each page */ | |||
|
ppd_mark_option(ppd,"PageSize","A4"); |
|||
|
printf("%%%%PageSetup0); |
|||
|
ppd_emit_to_file(ppd, stdout, PPD_ORDER_PAGE); |
|||
|
printf("%%%%EndPageSetup0); |
|||
|
/* Page info goes here */ | |||
|
... | |||
|
} |
|||
|
/* Send ending JCL code */ |
fputs(ppd->jcl_end->str,stdout);
SEE ALSO
ppd_file_new(3), ppd_file_free(3)