logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ppd_emit_to_file, ppd_emit_to_fd - Output device specific code.

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);

Name

       ppd_emit_to_file, ppd_emit_to_fd - Output device specific code.

See Also

ppd_file_new(3), ppd_file_free(3)

                                                                                             ppd_emit_to_file(3)

Synopsis

#include<ppd/ppd.h>gbooleanppd_emit(PpdFile*ppd,FILE*fp,PpdSectionOrdersection);gbooleanppd_emitfd(PpdFile*ppd,intfd,PpdSectionOrdersection);

See Also