#ifndef MUPDF_FITZ_OUTPUT_PCL_H1#define MUPDF_FITZ_OUTPUT_PCL_H23#include "mupdf/fitz/system.h"4#include "mupdf/fitz/context.h"5#include "mupdf/fitz/output.h"6#include "mupdf/fitz/pixmap.h"7#include "mupdf/fitz/bitmap.h"89/*10PCL output11*/12typedef struct fz_pcl_options_s fz_pcl_options;1314struct fz_pcl_options_s15{16/* Features of a particular printer */17int features;18const char *odd_page_init;19const char *even_page_init;2021/* Options for this job */22int tumble;23int duplex_set;24int duplex;25int paper_size;26int manual_feed_set;27int manual_feed;28int media_position_set;29int media_position;3031/* Updated as we move through the job */32int page_count;33};3435/*36fz_pcl_preset: Retrieve a set of fz_pcl_options suitable for a given37preset.3839opts: pointer to options structure to populate.4041preset: Preset to fetch. Currently defined presets include:42ljet4 HP DeskJet43dj500 HP DeskJet 50044fs600 Kyocera FS-60045lj HP LaserJet, HP LaserJet Plus46lj2 HP LaserJet IIp, HP LaserJet IId47lj3 HP LaserJet III48lj3d HP LaserJet IIId49lj4 HP LaserJet 450lj4pl HP LaserJet 4 PL51lj4d HP LaserJet 4d52lp2563b HP 2563B line printer53oce9050 Oce 9050 Line printer5455Throws exception on unknown preset.56*/57void fz_pcl_preset(fz_context *ctx, fz_pcl_options *opts, const char *preset);5859/*60fz_pcl_option: Set a given PCL option to a given value in the supplied61options structure.6263opts: The option structure to modify,6465option: The option to change.6667val: The value that the option should be set to. Acceptable ranges of68values depend on the option in question.6970Throws an exception on attempt to set an unknown option, or an illegal71value.7273Currently defined options/values are as follows:7475spacing,0 No vertical spacing capability76spacing,1 PCL 3 spacing (<ESC>*p+<n>Y)77spacing,2 PCL 4 spacing (<ESC>*b<n>Y)78spacing,3 PCL 5 spacing (<ESC>*b<n>Y and clear seed row)79mode2,0 or 1 Disable/Enable mode 2 graphics compression80mode3,0 or 1 Disable/Enable mode 3 graphics compression81mode3,0 or 1 Disable/Enable mode 3 graphics compression82eog_reset,0 or 1 End of graphics (<ESC>*rB) resets all parameters83has_duplex,0 or 1 Duplex supported (<ESC>&l<duplex>S)84has_papersize,0 or 1 Papersize setting supported (<ESC>&l<sizecode>A)85has_copies,0 or 1 Number of copies supported (<ESC>&l<copies>X)86is_ljet4pjl,0 or 1 Disable/Enable HP 4PJL model-specific output87is_oce9050,0 or 1 Disable/Enable Oce 9050 model-specific output88*/89void fz_pcl_option(fz_context *ctx, fz_pcl_options *opts, const char *option, int val);9091void fz_output_pcl(fz_context *ctx, fz_output *out, const fz_pixmap *pixmap, fz_pcl_options *pcl);9293void fz_output_pcl_bitmap(fz_context *ctx, fz_output *out, const fz_bitmap *bitmap, fz_pcl_options *pcl);9495void fz_write_pcl(fz_context *ctx, fz_pixmap *pixmap, char *filename, int append, fz_pcl_options *pcl);9697void fz_write_pcl_bitmap(fz_context *ctx, fz_bitmap *bitmap, char *filename, int append, fz_pcl_options *pcl);9899#endif100101102