00001
00002 #ifndef BMEPSI_H_INCLUDED
00003 #define BMEPSI_H_INCLUDED 1
00004
00009 #ifndef SYSCONFDIR
00010
00012 #define SYSCONFDIR "/etc"
00013 #endif
00014
00015 #ifndef GROUPNAME
00016
00018 #define GROUPNAME "dvips"
00019 #endif
00020
00021 #include <dk.h>
00022
00023 #if DK_HAVE_ZLIB_H
00024 #include <zlib.h>
00025 #if DK_HAVE_PNG_H
00026 #include <png.h>
00027 #endif
00028 #endif
00029 #if DK_HAVE_JPEGLIB_H
00030 #include <jpeglib.h>
00031 #endif
00032 #if DK_HAVE_PNM_H
00033 #include <pnm.h>
00034 #endif
00035 #if DK_HAVE_TIFF_H
00036 #include <tiff.h>
00037 #include <tiffio.h>
00038 #endif
00039
00040 #include <stdio.h>
00041 #if DK_HAVE_STDLIB_H
00042 #include <stdlib.h>
00043 #endif
00044 #if DK_HAVE_UNISTD_H
00045 #include <unistd.h>
00046 #endif
00047 #if DK_HAVE_MATH_H
00048 #include <math.h>
00049 #endif
00050 #if DK_HAVE_STRING_H
00051 #include <string.h>
00052 #else
00053 #if DK_HAVE_STRINGS_H
00054 #include <strings.h>
00055 #endif
00056 #endif
00057
00058 #include <dkerror.h>
00059 #include <dklogc.h>
00060 #include <dkstr.h>
00061 #include <dkmem.h>
00062 #include <dkapp.h>
00063 #include <dksto.h>
00064 #include <dklic.h>
00065 #include <dksf.h>
00066 #include <dkstream.h>
00067 #include <dkof.h>
00068 #include <dkbifi.h>
00069 #include <dkbif.h>
00070 #include <dkcp.h>
00071
00072
00073
00076 typedef struct {
00077 unsigned long objno;
00078 unsigned long pos;
00079 } PDFOBJPOS;
00080
00081
00082
00083
00086 typedef struct {
00087 double d;
00088 double deltax;
00089 double deltay;
00090 } DI;
00091
00092
00093
00096 typedef struct {
00097 double px0;
00098 double py0;
00099 double px1;
00100 double py1;
00101 double bx0;
00102 double by0;
00103 double bx1;
00104 double by1;
00105 } MEDIASIZE;
00106
00107
00108
00111 typedef struct {
00112 char *name;
00113 MEDIASIZE ms;
00114 } MSENTRY;
00115
00116
00117
00120 typedef struct {
00121 int ot;
00122 int l;
00123 int enc;
00124 dk_bif_sof_t jfif_s;
00125 unsigned long opt;
00126 unsigned long pdfopt;
00127 double dbgr;
00128 double dbgg;
00129 double dbgb;
00130 double mtl;
00131 MEDIASIZE ms;
00132 } BO;
00133
00134
00135
00138 typedef struct {
00139 char *n;
00140 BO *bo;
00141 } BOENTRY;
00142
00143
00144
00147 typedef struct {
00148
00149
00150
00151 BO *bo;
00152 BO *bo2;
00153 dk_stream_t *os;
00154 FILE *outf;
00155 FILE *inf;
00156 char *infname;
00157 dk_app_t *a;
00158 long frame_s;
00159 long frame_e;
00160 long frame_n;
00161 char *tmp1;
00162 char *tmp2;
00163 char *tmp3;
00164 char *tmp4;
00165 char *tmp5;
00166 char *tmp6;
00167 char *tmp7;
00168 dk_bif_t *bif;
00169 dk_storage_t *pdfobjs;
00170 dk_storage_iterator_t *pdfobjsi;
00171 unsigned long nexto;
00172 unsigned long psp;
00173 unsigned long olo;
00174
00175
00176
00177
00178 int it;
00179 char **msg;
00180 int exval;
00181 int cmd;
00182 char *i1;
00183 char *o1;
00184 char *lang;
00185 unsigned char mm;
00186 unsigned char frame_c;
00187 struct {
00188 int must_rotate;
00189 int must_scale;
00190 double sfx;
00191 double sfy;
00192 struct {
00193 double x0;
00194 double y0;
00195 double x1;
00196 double y1;
00197 } hrbb;
00198 struct {
00199 double x0;
00200 double y0;
00201 double x1;
00202 double y1;
00203 } ia;
00204 struct {
00205 double x0;
00206 double y0;
00207 double x1;
00208 double y1;
00209 } iu;
00210 struct {
00211 long x0;
00212 long y0;
00213 long x1;
00214 long y1;
00215 } bb;
00216 } trans;
00217 int me;
00218 unsigned char af;
00219 unsigned char alpha_channel_transferred;
00220 unsigned char suppress_alpha_info;
00221 } BJ;
00222
00223
00224
00225
00228 typedef struct {
00229 unsigned long number;
00230 char *contents;
00231 } OPTENTRY;
00232
00233
00234
00235
00238 typedef struct {
00239 int t;
00240 char *s;
00241 } INPUTTYPEENTRY;
00242
00243
00244
00245
00248 typedef char *PCHAR;
00249
00250
00251
00254 #define BMEPS_OUTPUT_TYPE_EPS 0
00255
00258 #define BMEPS_OUTPUT_TYPE_PDF 1
00259
00262 #define BMEPS_OUTPUT_TYPE_BB 2
00263
00264
00265
00266
00269 #define BMEPS_ENCODING_ASCII85 1
00270
00273 #define BMEPS_ENCODING_RUNLENGTH 2
00274
00277 #define BMEPS_ENCODING_DCT 4
00278
00281 #define BMEPS_ENCODING_FLATE 16
00282
00283
00284
00287 #define BMEPS_PS_LEVEL_1 1
00288
00291 #define BMEPS_PS_LEVEL_2 2
00292
00295 #define BMEPS_PS_LEVEL_3 3
00296
00297
00298
00301 #define BMEPS_PDF_LEVEL_12 11
00302
00305 #define BMEPS_PDF_LEVEL_13 12
00306
00309 #define BMEPS_PDF_LEVEL_14 13
00310
00311
00312
00315 #define BMEPS_OPT_OPERATOR_DICTIONARY 0x00000001UL
00316
00319 #define BMEPS_OPT_SEPARATED_DATA 0x00000002UL
00320
00323 #define BMEPS_OPT_COLOR_OUTPUT 0x00000004UL
00324
00327 #define BMEPS_OPT_ALPHA_MIX 0x00000008UL
00328
00331 #define BMEPS_OPT_PREFER_SPEC_BG 0x00000010UL
00332
00335 #define BMEPS_OPT_IMAGE_MASK 0x00000020UL
00336
00339 #define BMEPS_OPT_DSC 0x00000040UL
00340
00343 #define BMEPS_OPT_SHOWPAGE 0x00000080UL
00344
00347 #define BMEPS_OPT_RESOLUTION 0x00000100UL
00348
00351 #define BMEPS_OPT_DICTIONARY 0x00000200UL
00352
00355 #define BMEPS_OPT_VMRECLAIM 0x00000400UL
00356
00359 #define BMEPS_OPT_TRANSFER_ALPHA 0x00000800UL
00360
00363 #define BMEPS_OPT_PAPER_SIZE 0x00001000UL
00364
00367 #define BMEPS_OPT_DRAFT 0x00002000UL
00368
00371 #define BMEPS_OPT_INTERPOLATE 0x00004000UL
00372
00375 #define BMEPS_OPT_JPEG_INTERPOLATE 0x00008000UL
00376
00379 #define BMEPS_OPT_FORCE_DCT 0x00010000UL
00380
00381
00382
00385 #define BMEPS_PDFOPT_FIT_WIDTH 1UL
00386
00389 #define BMEPS_PDFOPT_FIT_HEIGHT 2UL
00390
00393 #define BMEPS_PDFOPT_FIT_PAGE (BMEPS_PDFOPT_FIT_WIDTH | BMEPS_PDFOPT_FIT_HEIGHT)
00394
00397 #define BMEPS_PDFOPT_FIT_MASK (BMEPS_PDFOPT_FIT_WIDTH | BMEPS_PDFOPT_FIT_HEIGHT)
00398
00401 #define BMEPS_PDFOPT_ALLOW_PDF_PAGE_ATTRIBUTES 4UL
00402
00403
00404
00407 #define BMEPS_CMD_RUN 0
00408
00411 #define BMEPS_CMD_HELP 1
00412
00415 #define BMEPS_CMD_VERSION 2
00416
00419 #define BMEPS_CMD_CONFIGURE 4
00420
00423 #define BMEPS_CMD_UNCONFIGURE 8
00424
00427 #define BMEPS_CMD_SHOWCONF 16
00428
00431 #define BMEPS_CMD_ERROR 32
00432
00435 #define BMEPS_CMD_CONFIGURATION_FILE 64
00436
00439 #define BMEPS_CMD_WRITE_CONFIGURATION_FILE 128
00440
00443 #define BMEPS_CMD_APP (BMEPS_CMD_HELP\
00444 |BMEPS_CMD_VERSION\
00445 |BMEPS_CMD_CONFIGURE\
00446 |BMEPS_CMD_UNCONFIGURE\
00447 |BMEPS_CMD_SHOWCONF\
00448 |BMEPS_CMD_CONFIGURATION_FILE\
00449 |BMEPS_CMD_WRITE_CONFIGURATION_FILE\
00450 )
00451
00452 #if defined(EXTERN)
00453 #undef EXTERN
00454 #endif
00455
00456
00458 #if B2BJ_C
00459 #define EXTERN
00460 #else
00461 #if DK_HAVE_PROTOTYPES
00462 #define EXTERN
00463 #else
00464 #define EXTERN extern
00465 #endif
00466 #endif
00467 #if defined(__cplusplus)
00468 extern "C" {
00469 #endif
00470
00474 EXTERN void
00475 bmeps_bj_init DK_PR((BJ *bj));
00476
00477 #if defined(__cplusplus)
00478 }
00479 #endif
00480
00481
00482
00483
00485 #if B2BO_C
00486 #define EXTERN
00487 #else
00488 #if DK_HAVE_PROTOTYPES
00489 #define EXTERN
00490 #else
00491 #define EXTERN extern
00492 #endif
00493 #endif
00494 #if defined(__cplusplus)
00495 extern "C" {
00496 #endif
00497
00501 EXTERN void
00502 bmeps_bo_get_defaults DK_PR((BO *bo));
00503
00510 EXTERN int
00511 bmeps_bo_add_line DK_PR((BJ *bj, BO *bo, char *s));
00512
00517 EXTERN void bmeps_bo_get_configuration DK_PR((BJ *bj, char *langdef));
00518
00525 EXTERN int bmeps_bo_get_pref_lang DK_PR((BJ *bj, char *buffer, size_t sz));
00526
00531 EXTERN int bmeps_bo_show_configuration_file DK_PR((BJ *bj));
00532
00537 EXTERN int bmeps_bo_write_configuration_file DK_PR((BJ *bj));
00538
00539 #if defined(__cplusplus)
00540 }
00541 #endif
00542
00543
00545 #if B2STR_C
00546 #define EXTERN
00547 #else
00548 #if DK_HAVE_PROTOTYPES
00549 #define EXTERN
00550 #else
00551 #define EXTERN extern
00552 #endif
00553 #endif
00554 #if defined(__cplusplus)
00555 extern "C" {
00556 #endif
00557
00562 EXTERN char *bmeps_str_get DK_PR((size_t s));
00563
00567 EXTERN size_t bmeps_get_num DK_PR((void));
00568
00572 EXTERN char **bmeps_str_base DK_PR((void));
00573
00574 #if defined(__cplusplus)
00575 }
00576 #endif
00577
00578
00579
00580
00582 #if B2CONV_C
00583 #define EXTERN
00584 #else
00585 #if DK_HAVE_PROTOTYPES
00586 #define EXTERN
00587 #else
00588 #define EXTERN extern
00589 #endif
00590 #endif
00591 #if defined(__cplusplus)
00592 extern "C" {
00593 #endif
00594
00598 EXTERN void bmeps_convert DK_PR((BJ *bj));
00599
00600 #if defined(__cplusplus)
00601 }
00602 #endif
00603
00604
00605
00606
00608 #if B2EPS_C
00609 #define EXTERN
00610 #else
00611 #if DK_HAVE_PROTOTYPES
00612 #define EXTERN
00613 #else
00614 #define EXTERN extern
00615 #endif
00616 #endif
00617 #if defined(__cplusplus)
00618 extern "C" {
00619 #endif
00620
00624 EXTERN void
00625 bmeps_eps_conventional DK_PR((BJ *bj));
00626
00631 EXTERN void
00632 bmeps_eps_dct DK_PR((BJ *bj));
00633
00637 EXTERN void
00638 bmeps_eps_draft DK_PR((BJ *bj));
00639
00643 EXTERN void
00644 bmeps_eps_bb DK_PR((BJ *bj));
00645 #if defined(__cplusplus)
00646 }
00647 #endif
00648
00649
00651 #if B2PDF_C
00652 #define EXTERN
00653 #else
00654 #if DK_HAVE_PROTOTYPES
00655 #define EXTERN
00656 #else
00657 #define EXTERN extern
00658 #endif
00659 #endif
00660 #if defined(__cplusplus)
00661 extern "C" {
00662 #endif
00663
00668 EXTERN void
00669 bmeps_pdf DK_PR((BJ *bj, int how));
00670
00671 #if defined(__cplusplus)
00672 }
00673 #endif
00674
00675
00676
00678 #if B2TOOL1_C
00679 #define EXTERN
00680 #else
00681 #if DK_HAVE_PROTOTYPES
00682 #define EXTERN
00683 #else
00684 #define EXTERN extern
00685 #endif
00686 #endif
00687 #if defined(__cplusplus)
00688 extern "C" {
00689 #endif
00690
00697 EXTERN int
00698 bmeps_tool_how_to_handle_bb DK_PR((BJ *bj));
00699
00705 EXTERN unsigned short
00706 bmeps_tool_eps_output_bits DK_PR((unsigned short b));
00707
00713 EXTERN unsigned short
00714 bmeps_tool_pdf_output_bits DK_PR((unsigned short b));
00715
00719 EXTERN void
00720 bmeps_tool_correct_bo DK_PR((BO *bo));
00721
00726 EXTERN int
00727 bmeps_tool_interpolate DK_PR((BJ *bj));
00728
00733 EXTERN char *
00734 bmeps_tool_suffix_for_output_type DK_PR((int t));
00735
00744 EXTERN int
00745 bmeps_tool_calc_di DK_PR((BJ *bj, DI *dp1, DI *dp2, double f1, double f2));
00746
00750 EXTERN void
00751 bmeps_tool_calculate_areas DK_PR((BJ *bj));
00752
00756 EXTERN void
00757 bmeps_tool_error_memory DK_PR((BJ *bj));
00758
00764 EXTERN void
00765 bmeps_tool_msg_1 DK_PR((BJ *bj, int ll, size_t n));
00766
00767
00776 EXTERN void
00777 bmeps_tool_msg_3 DK_PR((BJ *bj, int ll, size_t n1, size_t n2, char *s));
00778
00789 EXTERN void
00790 bmeps_tool_msg_5 DK_PR((BJ *bj, int ll, size_t n1, size_t n2, size_t n3, char *s1, char *s2));
00791
00792 #if defined(__cplusplus)
00793 }
00794 #endif
00795
00796
00799 #define NAME_BUFFER_SIZE 128
00800
00803 #define CONFIG_LINE_SIZE 1024
00804
00807 #define DPI_EPSILON 0.00001
00808
00809 #endif
00810
00811