ppd_emit_to_file(3)
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);