.TH ppd_emit_to_file 3 .SH NAME ppd_emit_to_file, ppd_emit_to_fd \- Output device specific code. .SH SYNOPSIS .nf .B #include .sp .BI "gboolean ppd_emit( PpdFile * " ppd ",FILE *" fp ",PpdSectionOrder " section " );" .BI "gboolean ppd_emitfd( PpdFile * " ppd ", int " fd ",PpdSectionOrder " section " );" .SH DESCRIPTION The .B 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: .TP .B PPD_ORDER_ANY Option code can be anywhere in the file .TP .B PPD_ORDER_DOCUMENT Option code must be in the DocumentSetup section .TP .B PPD_ORDER_EXIT Option code must be sent prior to the document .TP .B PPD_ORDER_JCL Option code must be sent as a JCL command .TP .B PPD_ORDER_PAGE Option code must be in the PageSetup section .TP .B PPD_ORDER_PROLOG Option code must be in the Prolog section .PP The sections .B PPD_ORDER_DOCUMENT and .B PPD_ORDER_PAGE will also output code from the .B PPD_ORDER_ANY section. .sp Once a code section has been emitted it is marked as such and will not be emitted unless it is re-marked. .SH "EXAMPLE" .sp .nf /* 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("%%%%BeginProlog\n"); ppd_emit_to_file(ppd, stdout, PPD_ORDER_PROLOG); printf("%%%%EndProlog\n"); /* Setup section */ printf("%%%%BeginSetup\n"); ppd_emit_to_file(ppd, stdout, PPD_ORDER_DOCUMENT); printf("%%%%EndSetup\n"); /* Main document begins */ for (...) { printf("%%%%Page: 1 1\n"); /* Re-mark so that this is emitted on each page */ ppd_mark_option(ppd,"PageSize","A4"); printf("%%%%PageSetup\n"); ppd_emit_to_file(ppd, stdout, PPD_ORDER_PAGE); printf("%%%%EndPageSetup\n"); /* Page info goes here */ ... } /* Send ending JCL code */ fputs(ppd->jcl_end->str,stdout); .fi .sp .SH "SEE ALSO" .BR ppd_file_new "(3), " ppd_file_free "(3)"