34 #ifndef __HPGS_READER_H__
35 #define __HPGS_READER_H__
51 #define MM_TO_PT (72.0 / 25.4)
52 #define HP_TO_PT (72.0 / (25.4 * 40.0))
54 #define MAKE_COMMAND(a,b) (((int)(a) << 8) + (b))
56 #define AA_CMD MAKE_COMMAND('A','A')
57 #define AC_CMD MAKE_COMMAND('A','C')
58 #define AD_CMD MAKE_COMMAND('A','D')
59 #define AR_CMD MAKE_COMMAND('A','R')
60 #define AT_CMD MAKE_COMMAND('A','T')
61 #define BP_CMD MAKE_COMMAND('B','P')
62 #define BR_CMD MAKE_COMMAND('B','R')
63 #define BZ_CMD MAKE_COMMAND('B','Z')
64 #define CI_CMD MAKE_COMMAND('C','I')
65 #define CO_CMD MAKE_COMMAND('C','O')
66 #define CP_CMD MAKE_COMMAND('C','P')
67 #define CR_CMD MAKE_COMMAND('C','R')
68 #define DI_CMD MAKE_COMMAND('D','I')
69 #define DR_CMD MAKE_COMMAND('D','R')
70 #define DT_CMD MAKE_COMMAND('D','T')
71 #define DV_CMD MAKE_COMMAND('D','V')
72 #define EA_CMD MAKE_COMMAND('E','A')
73 #define EP_CMD MAKE_COMMAND('E','P')
74 #define ER_CMD MAKE_COMMAND('E','R')
75 #define ES_CMD MAKE_COMMAND('E','S')
76 #define EW_CMD MAKE_COMMAND('E','W')
77 #define FP_CMD MAKE_COMMAND('F','P')
78 #define FR_CMD MAKE_COMMAND('F','R')
79 #define FT_CMD MAKE_COMMAND('F','T')
80 #define IN_CMD MAKE_COMMAND('I','N')
81 #define IP_CMD MAKE_COMMAND('I','P')
82 #define IR_CMD MAKE_COMMAND('I','R')
83 #define IW_CMD MAKE_COMMAND('I','W')
84 #define LA_CMD MAKE_COMMAND('L','A')
85 #define LB_CMD MAKE_COMMAND('L','B')
86 #define LO_CMD MAKE_COMMAND('L','O')
87 #define LT_CMD MAKE_COMMAND('L','T')
88 #define MC_CMD MAKE_COMMAND('M','C')
89 #define MG_CMD MAKE_COMMAND('M','G')
90 #define NP_CMD MAKE_COMMAND('N','P')
91 #define PA_CMD MAKE_COMMAND('P','A')
92 #define PC_CMD MAKE_COMMAND('P','C')
93 #define PD_CMD MAKE_COMMAND('P','D')
94 #define PE_CMD MAKE_COMMAND('P','E')
95 #define PG_CMD MAKE_COMMAND('P','G')
96 #define PM_CMD MAKE_COMMAND('P','M')
97 #define PP_CMD MAKE_COMMAND('P','P')
98 #define PR_CMD MAKE_COMMAND('P','R')
99 #define PS_CMD MAKE_COMMAND('P','S')
100 #define PU_CMD MAKE_COMMAND('P','U')
101 #define PW_CMD MAKE_COMMAND('P','W')
102 #define RA_CMD MAKE_COMMAND('R','A')
103 #define RO_CMD MAKE_COMMAND('R','O')
104 #define RR_CMD MAKE_COMMAND('R','R')
105 #define RT_CMD MAKE_COMMAND('R','T')
106 #define SA_CMD MAKE_COMMAND('S','A')
107 #define SC_CMD MAKE_COMMAND('S','C')
108 #define SD_CMD MAKE_COMMAND('S','D')
109 #define SI_CMD MAKE_COMMAND('S','I')
110 #define SL_CMD MAKE_COMMAND('S','L')
111 #define SM_CMD MAKE_COMMAND('S','M')
112 #define SP_CMD MAKE_COMMAND('S','P')
113 #define SR_CMD MAKE_COMMAND('S','R')
114 #define SS_CMD MAKE_COMMAND('S','S')
115 #define TR_CMD MAKE_COMMAND('T','R')
116 #define UL_CMD MAKE_COMMAND('U','L')
117 #define WG_CMD MAKE_COMMAND('W','G')
118 #define WU_CMD MAKE_COMMAND('W','U')
226 HPGS_INTERNAL_API
int hpgs_reader_pcl_bitmap_character_render(
hpgs_reader *reader,
306 float linetype_segs[17][20];
322 int label_term_ignore;
330 int poly_buffer_size;
331 int poly_buffer_alloc_size;
360 double default_pitch;
361 double default_height;
370 int alternate_spacing;
371 double alternate_pitch;
372 double alternate_height;
373 int alternate_posture;
374 int alternate_weight;
384 double current_slant;
385 int current_label_origin;
386 int current_text_path;
387 int current_text_line;
388 double current_label_angle;
445 HPGS_INTERNAL_API
int hpgs_reader_check_param_end(
hpgs_reader *reader);
479 HPGS_INTERNAL_API
int hpgs_reader_read_label_string(
hpgs_reader *reader,
char *str);
482 HPGS_INTERNAL_API
void hpgs_reader_set_default_transformation (
hpgs_reader *reader);
483 HPGS_INTERNAL_API
void hpgs_reader_set_default_state (
hpgs_reader *reader);
484 HPGS_INTERNAL_API
void hpgs_reader_set_defaults (
hpgs_reader *reader);
485 HPGS_INTERNAL_API
int hpgs_reader_set_plotsize (
hpgs_reader *reader,
double xs,
double ys);
486 HPGS_INTERNAL_API
int hpgs_reader_showpage (
hpgs_reader *reader,
int ipage);
488 HPGS_INTERNAL_API
void hpgs_reader_set_std_pen_colors(
hpgs_reader *reader,
491 HPGS_INTERNAL_API
int hpgs_reader_checkpath(
hpgs_reader *reader);
495 HPGS_INTERNAL_API
int hpgs_reader_curveto(
hpgs_reader *reader,
497 HPGS_INTERNAL_API
int hpgs_reader_stroke(
hpgs_reader *reader);
498 HPGS_INTERNAL_API
int hpgs_reader_fill(
hpgs_reader *reader, hpgs_bool winding);
499 HPGS_INTERNAL_API
int hpgs_reader_closepath(
hpgs_reader *reader);
501 HPGS_INTERNAL_API
int hpgs_reader_do_setpen(
hpgs_reader *reader,
int pen);
509 HPGS_INTERNAL_API
int hpgs_reader_label(
hpgs_reader *reader,
510 const char *str,
int str_len,
519 HPGS_INTERNAL_API
int hpgs_device_label(
hpgs_device *dev,
521 const char *str,
int str_len,
523 const char *encoding,
530 typedef int (*hpgs_reader_hpglcmd_func_t)(
hpgs_reader *reader);
535 HPGS_INTERNAL_API
int hpgs_reader_push_pcl_palette (
hpgs_reader *reader);
536 HPGS_INTERNAL_API
int hpgs_reader_pop_pcl_palette (
hpgs_reader *reader);
538 HPGS_INTERNAL_API
int hpgs_reader_pcl_cmd_font_id (
hpgs_reader *reader,
int arg);
539 HPGS_INTERNAL_API
int hpgs_reader_pcl_cmd_font_header (
hpgs_reader *reader,
int arg);
540 HPGS_INTERNAL_API
int hpgs_reader_pcl_cmd_select_font_id (
hpgs_reader *reader,
int arg);
541 HPGS_INTERNAL_API
int hpgs_reader_pcl_cmd_character_definition (
hpgs_reader *reader,
int arg);
543 HPGS_INTERNAL_API
int hpgs_reader_do_AA(
hpgs_reader *reader);
544 HPGS_INTERNAL_API
int hpgs_reader_do_AC(
hpgs_reader *reader);
545 HPGS_INTERNAL_API
int hpgs_reader_do_AD(
hpgs_reader *reader);
546 HPGS_INTERNAL_API
int hpgs_reader_do_AR(
hpgs_reader *reader);
547 HPGS_INTERNAL_API
int hpgs_reader_do_AT(
hpgs_reader *reader);
548 HPGS_INTERNAL_API
int hpgs_reader_do_BP(
hpgs_reader *reader);
549 HPGS_INTERNAL_API
int hpgs_reader_do_BR(
hpgs_reader *reader);
550 HPGS_INTERNAL_API
int hpgs_reader_do_BZ(
hpgs_reader *reader);
551 HPGS_INTERNAL_API
int hpgs_reader_do_CI(
hpgs_reader *reader);
552 HPGS_INTERNAL_API
int hpgs_reader_do_CO(
hpgs_reader *reader);
553 HPGS_INTERNAL_API
int hpgs_reader_do_CP(
hpgs_reader *reader);
554 HPGS_INTERNAL_API
int hpgs_reader_do_CR(
hpgs_reader *reader);
555 HPGS_INTERNAL_API
int hpgs_reader_do_DI(
hpgs_reader *reader);
556 HPGS_INTERNAL_API
int hpgs_reader_do_DR(
hpgs_reader *reader);
557 HPGS_INTERNAL_API
int hpgs_reader_do_DT(
hpgs_reader *reader);
558 HPGS_INTERNAL_API
int hpgs_reader_do_DV(
hpgs_reader *reader);
559 HPGS_INTERNAL_API
int hpgs_reader_do_EA(
hpgs_reader *reader);
560 HPGS_INTERNAL_API
int hpgs_reader_do_EP(
hpgs_reader *reader);
561 HPGS_INTERNAL_API
int hpgs_reader_do_ER(
hpgs_reader *reader);
562 HPGS_INTERNAL_API
int hpgs_reader_do_ES(
hpgs_reader *reader);
563 HPGS_INTERNAL_API
int hpgs_reader_do_EW(
hpgs_reader *reader);
564 HPGS_INTERNAL_API
int hpgs_reader_do_FP(
hpgs_reader *reader);
565 HPGS_INTERNAL_API
int hpgs_reader_do_FR(
hpgs_reader *reader);
566 HPGS_INTERNAL_API
int hpgs_reader_do_FT(
hpgs_reader *reader);
567 HPGS_INTERNAL_API
int hpgs_reader_do_IN(
hpgs_reader *reader);
568 HPGS_INTERNAL_API
int hpgs_reader_do_IP(
hpgs_reader *reader);
569 HPGS_INTERNAL_API
int hpgs_reader_do_IR(
hpgs_reader *reader);
570 HPGS_INTERNAL_API
int hpgs_reader_do_IW(
hpgs_reader *reader);
571 HPGS_INTERNAL_API
int hpgs_reader_do_LA(
hpgs_reader *reader);
572 HPGS_INTERNAL_API
int hpgs_reader_do_LB(
hpgs_reader *reader);
573 HPGS_INTERNAL_API
int hpgs_reader_do_LO(
hpgs_reader *reader);
574 HPGS_INTERNAL_API
int hpgs_reader_do_LT(
hpgs_reader *reader);
575 HPGS_INTERNAL_API
int hpgs_reader_do_MC(
hpgs_reader *reader);
576 HPGS_INTERNAL_API
int hpgs_reader_do_MG(
hpgs_reader *reader);
577 HPGS_INTERNAL_API
int hpgs_reader_do_NP(
hpgs_reader *reader);
578 HPGS_INTERNAL_API
int hpgs_reader_do_PC(
hpgs_reader *reader);
579 HPGS_INTERNAL_API
int hpgs_reader_do_PA(
hpgs_reader *reader);
580 HPGS_INTERNAL_API
int hpgs_reader_do_PD(
hpgs_reader *reader);
581 HPGS_INTERNAL_API
int hpgs_reader_do_PE(
hpgs_reader *reader);
582 HPGS_INTERNAL_API
int hpgs_reader_do_PG(
hpgs_reader *reader);
583 HPGS_INTERNAL_API
int hpgs_reader_do_PM(
hpgs_reader *reader);
584 HPGS_INTERNAL_API
int hpgs_reader_do_PP(
hpgs_reader *reader);
585 HPGS_INTERNAL_API
int hpgs_reader_do_PR(
hpgs_reader *reader);
586 HPGS_INTERNAL_API
int hpgs_reader_do_PS(
hpgs_reader *reader);
587 HPGS_INTERNAL_API
int hpgs_reader_do_PU(
hpgs_reader *reader);
588 HPGS_INTERNAL_API
int hpgs_reader_do_PW(
hpgs_reader *reader);
589 HPGS_INTERNAL_API
int hpgs_reader_do_RA(
hpgs_reader *reader);
590 HPGS_INTERNAL_API
int hpgs_reader_do_RO(
hpgs_reader *reader);
591 HPGS_INTERNAL_API
int hpgs_reader_do_RR(
hpgs_reader *reader);
592 HPGS_INTERNAL_API
int hpgs_reader_do_RT(
hpgs_reader *reader);
593 HPGS_INTERNAL_API
int hpgs_reader_do_SA(
hpgs_reader *reader);
594 HPGS_INTERNAL_API
int hpgs_reader_do_SC(
hpgs_reader *reader);
595 HPGS_INTERNAL_API
int hpgs_reader_do_SD(
hpgs_reader *reader);
596 HPGS_INTERNAL_API
int hpgs_reader_do_SI(
hpgs_reader *reader);
597 HPGS_INTERNAL_API
int hpgs_reader_do_SL(
hpgs_reader *reader);
598 HPGS_INTERNAL_API
int hpgs_reader_do_SM(
hpgs_reader *reader);
599 HPGS_INTERNAL_API
int hpgs_reader_do_SP(
hpgs_reader *reader);
600 HPGS_INTERNAL_API
int hpgs_reader_do_SR(
hpgs_reader *reader);
601 HPGS_INTERNAL_API
int hpgs_reader_do_SS(
hpgs_reader *reader);
602 HPGS_INTERNAL_API
int hpgs_reader_do_TR(
hpgs_reader *reader);
603 HPGS_INTERNAL_API
int hpgs_reader_do_UL(
hpgs_reader *reader);
604 HPGS_INTERNAL_API
int hpgs_reader_do_WG(
hpgs_reader *reader);
605 HPGS_INTERNAL_API
int hpgs_reader_do_WU(
hpgs_reader *reader);
HPGS_INTERNAL_API int hpgs_reader_read_double(hpgs_reader *reader, double *x)
Definition: hpgslexer.c:193
HPGS_INTERNAL_API int hpgs_reader_read_pcl_int(hpgs_reader *reader, int *x, int *sign)
Definition: hpgslexer.c:104
HPGS_INTERNAL_API int hpgs_reader_do_PJL(hpgs_reader *reader)
Definition: hpgspjl.c:99
HPGS_INTERNAL_API int hpgs_reader_read_int(hpgs_reader *reader, int *x)
Definition: hpgslexer.c:146
HPGS_INTERNAL_API int hpgs_reader_do_PCL(hpgs_reader *reader, hpgs_bool take_pos)
Definition: hpgspcl.c:2023
HPGS_INTERNAL_API int hpgs_device_setrgb_all(hpgs_device *dev, const hpgs_color *rgb)
Definition: hpgspen.c:114
HPGS_INTERNAL_API int hpgs_reader_read_new_string(hpgs_reader *reader, char *str)
Definition: hpgslexer.c:284
A bounding box.
Definition: hpgs.h:297
An application level RGB color.
Definition: hpgs.h:238
A virtual vector graphics device for the HPGL reader.
Definition: hpgs.h:699
An abstract pixel image.
Definition: hpgs.h:989
A virtual input stream for the HPGL reader.
Definition: hpgs.h:427
A transformation matrix for 2D points.
Definition: hpgs.h:341
A screen RGB color as stored in a palette.
Definition: hpgs.h:251
A 2D point.
Definition: hpgs.h:227
A PCL bitmap character.
Definition: hpgsreader.h:211
A PCL bitmap font.
Definition: hpgsreader.h:162
double height
Definition: hpgsreader.h:198
double pitch
Definition: hpgsreader.h:196
double baseline_position
Definition: hpgsreader.h:200
int x_resolution
Definition: hpgsreader.h:201
int y_resolution
Definition: hpgsreader.h:202
hpgs_reader_pcl_bitmap_character * characters[256]
Definition: hpgsreader.h:204
A PCL palette as used by PCL push/pop palette.
Definition: hpgsreader.h:144
hpgs_palette_color colors[256]
Definition: hpgsreader.h:145
hpgs_palette_color last_color
Definition: hpgsreader.h:146
int cid_bpc[3]
Definition: hpgsreader.h:151
int cid_space
Definition: hpgsreader.h:148
int cid_enc
Definition: hpgsreader.h:149
int cid_bpi
Definition: hpgsreader.h:150
A point in hte HPGL polygon buffer.
Definition: hpgsreader.h:132
hpgs_point p
The coordinates of the point.
Definition: hpgsreader.h:133
int flag
0 moveto, 1 lineto, 2 curveto
Definition: hpgsreader.h:134
A HPGL interpreter.
Definition: hpgsreader.h:236
hpgs_reader_asset_func_t frame_asset_func
Definition: hpgsreader.h:301
double total_scale
Definition: hpgsreader.h:285
int default_encoding
Definition: hpgsreader.h:357
int absolute_plotting
Definition: hpgsreader.h:339
hpgs_istream * in
Definition: hpgsreader.h:237
hpgs_reader_pcl_bitmap_font * pcl_primary_bitmap_font
Definition: hpgsreader.h:402
hpgs_device * plotsize_device
Definition: hpgsreader.h:239
hpgs_reader_pcl_palette ** pcl_palettes
Definition: hpgsreader.h:406
size_t pcl_n_palettes
Definition: hpgsreader.h:407
hpgs_color min_color
Definition: hpgsreader.h:316
hpgs_reader_pcl_bitmap_font * pcl_current_bitmap_font
Definition: hpgsreader.h:401
hpgs_palette_color pcl_foreground_color
Definition: hpgsreader.h:411
double page_border
Definition: hpgsreader.h:292
hpgs_point P2
Definition: hpgsreader.h:253
hpgs_matrix world_matrix
Definition: hpgsreader.h:272
int bytes_ignored
Definition: hpgsreader.h:440
double ft4_spacing
Definition: hpgsreader.h:352
int pcl_raster_planes
Definition: hpgsreader.h:428
int pcl_raster_src_width
Definition: hpgsreader.h:416
hpgs_bbox page_bbox
Definition: hpgsreader.h:294
double ft10_level
Definition: hpgsreader.h:353
int pen_width_relative
Definition: hpgsreader.h:335
int png_dump_count
Definition: hpgsreader.h:434
int rop3
Definition: hpgsreader.h:268
int linetype_nsegs[17]
Definition: hpgsreader.h:305
double ft4_angle
Definition: hpgsreader.h:351
hpgs_point max_path_point
Definition: hpgsreader.h:345
hpgs_point delta_P
Definition: hpgsreader.h:254
hpgs_reader_asset_func_t page_asset_func
Definition: hpgsreader.h:298
int clipsave_depth
Definition: hpgsreader.h:437
double page_scale
Definition: hpgsreader.h:281
hpgs_point anchor_point
Definition: hpgsreader.h:346
void * page_asset_ctxt
Definition: hpgsreader.h:297
hpgs_point current_point
Definition: hpgsreader.h:341
hpgs_matrix page_matrix
Definition: hpgsreader.h:277
int current_page
Definition: hpgsreader.h:241
hpgs_device * device
Definition: hpgsreader.h:238
int pcl_raster_plane
Definition: hpgsreader.h:423
void * frame_asset_ctxt
Definition: hpgsreader.h:300
double pcl_hmi
Definition: hpgsreader.h:392
int pcl_raster_line
Definition: hpgsreader.h:424
int pcl_raster_data_size
Definition: hpgsreader.h:427
int pcl_raster_dest_width
Definition: hpgsreader.h:418
hpgs_reader_pcl_bitmap_font ** pcl_bitmap_fonts
Definition: hpgsreader.h:396
char * png_dump_filename
Definition: hpgsreader.h:435
int page_mode
Definition: hpgsreader.h:287
double page_angle
Definition: hpgsreader.h:291
int current_linetype
Definition: hpgsreader.h:338
int pcl_raster_compression
Definition: hpgsreader.h:421
int verbosity
Definition: hpgsreader.h:243
int rotation
Definition: hpgsreader.h:255
hpgs_point min_path_point
Definition: hpgsreader.h:344
double pcl_vmi
Definition: hpgsreader.h:393
size_t pcl_bitmap_fonts_size
Definition: hpgsreader.h:398
double lw_factor
Definition: hpgsreader.h:245
double ft3_spacing
Definition: hpgsreader.h:350
int current_pen
Definition: hpgsreader.h:337
int pcl_raster_mode
Definition: hpgsreader.h:413
int pcl_raster_res
Definition: hpgsreader.h:420
double ft3_angle
Definition: hpgsreader.h:349
int sc_type
Definition: hpgsreader.h:259
double frame_x
Definition: hpgsreader.h:251
double world_scale
Definition: hpgsreader.h:275
int pen_down
Definition: hpgsreader.h:336
int pcl_raster_dest_height
Definition: hpgsreader.h:419
int pcl_current_character_code
Definition: hpgsreader.h:404
int last_byte
Definition: hpgsreader.h:439
int pcl_raster_presentation
Definition: hpgsreader.h:415
hpgs_bool src_transparency
Definition: hpgsreader.h:269
unsigned char * pcl_raster_data[8]
Definition: hpgsreader.h:426
int current_ft
Definition: hpgsreader.h:348
hpgs_point pcl_point
Definition: hpgsreader.h:394
int polygon_open
Definition: hpgsreader.h:334
char label_term
Definition: hpgsreader.h:321
int alternate_encoding
Definition: hpgsreader.h:368
hpgs_point cr_point
Definition: hpgsreader.h:381
int pcl_raster_y_offset
Definition: hpgsreader.h:422
int polygon_mode
Definition: hpgsreader.h:325
int npens
Definition: hpgsreader.h:311
int pcl_pattern
Definition: hpgsreader.h:410
int pcl_current_bitmap_font_id
Definition: hpgsreader.h:400
int pcl_raster_src_height
Definition: hpgsreader.h:417
hpgs_bool pattern_transparency
Definition: hpgsreader.h:270
hpgs_bool interrupted
Definition: hpgsreader.h:442
double x_size
Definition: hpgsreader.h:248
double pcl_scale
Definition: hpgsreader.h:391
int pcl_i_palette
Definition: hpgsreader.h:408
hpgs_bbox content_bbox
Definition: hpgsreader.h:295
int alternate_font
Definition: hpgsreader.h:377
size_t pcl_bitmap_fonts_alloc_size
Definition: hpgsreader.h:397
hpgs_point first_path_point
Definition: hpgsreader.h:343
int have_current_point
Definition: hpgsreader.h:340
hpgs_image * pcl_image
Definition: hpgsreader.h:431
hpgs_reader_poly_point * poly_buffer
Definition: hpgsreader.h:329
hpgs_color max_color
Definition: hpgsreader.h:317
hpgs_point P1
Definition: hpgsreader.h:252
double page_width
Definition: hpgsreader.h:289
hpgs_matrix total_matrix
Definition: hpgsreader.h:283
int eoc
Definition: hpgsreader.h:441
double page_height
Definition: hpgsreader.h:290