YZPrinter::YZPrinter( YView *view ) /*: QPrinter(QPrinter::PrinterResolution) */{ PS_mp_init(); PS_boot(); mView = view; /*setPageSize( QPrinter::A4 ); setColorMode( QPrinter::Color );*/ }
DevicePS(): GraphicsDevice(), fileName( "gdl.ps"), actStream( NULL), XPageSize(17.78), YPageSize(12.7), XOffset(0.0),YOffset(0.0), color(0), decomposed( 0), encapsulated(false), scale(1.) { name = "PS"; DLongGDL origin( dimension( 2)); DLongGDL zoom( dimension( 2)); zoom[0] = 1; zoom[1] = 1; dStruct = new DStructGDL( "!DEVICE"); dStruct->InitTag("NAME", DStringGDL( name)); dStruct->InitTag("X_SIZE", DLongGDL( XPageSize*scale*1000)); //29700/1000=29.7 cm dStruct->InitTag("Y_SIZE", DLongGDL( YPageSize*scale*1000)); dStruct->InitTag("X_VSIZE", DLongGDL( XPageSize*scale*1000)); dStruct->InitTag("Y_VSIZE", DLongGDL( YPageSize*scale*1000)); dStruct->InitTag("X_CH_SIZE", DLongGDL( 360)); dStruct->InitTag("Y_CH_SIZE", DLongGDL( 360)); dStruct->InitTag("X_PX_CM", DFloatGDL( 1000.0)); //1000 pix/cm dStruct->InitTag("Y_PX_CM", DFloatGDL( 1000.0)); dStruct->InitTag("N_COLORS", DLongGDL( 256)); dStruct->InitTag("TABLE_SIZE", DLongGDL( 256)); dStruct->InitTag("FILL_DIST", DLongGDL( 1)); dStruct->InitTag("WINDOW", DLongGDL( -1)); dStruct->InitTag("UNIT", DLongGDL( 0)); dStruct->InitTag("FLAGS", DLongGDL( 266807)); dStruct->InitTag("ORIGIN", origin); dStruct->InitTag("ZOOM", zoom); SetPortrait(); # ifdef USE_PSLIB PS_boot(); // PSlib changes locale - bug no. 3428043 # ifdef HAVE_LOCALE_H setlocale(LC_ALL, "C"); # endif # endif }
int main(int argc, char* argv[]) { struct cfklp* cfklp; char *infile_name, *outfile_name; char *font, *justification; float leading, font_size, parindent; float page_width, page_height, margin; int numindentlines; bool linebreak, parbreak; bool verbose; int ch; /* */ if (argc == 1) { cfklp_usage(stdout); return EXIT_SUCCESS; } linebreak = DEFAULT_LINEBREAK; parbreak = DEFAULT_PARBREAK; font_size = DEFAULT_FONT_SIZE; leading = DEFAULT_LEADING; font = DEFAULT_FONT; numindentlines = DEFAULT_NUMINDENTLINES; parindent = DEFAULT_PARINDENT; justification = DEFAULT_JUSTIFICATION; page_width = DEFAULT_PAGE_WIDTH; page_height = DEFAULT_PAGE_HEIGHT; margin = DEFAULT_MARGIN; verbose = DEFAULT_VERBOSITY; while ((ch = getopt(argc, argv, "H:LPW:f:j:l:m:n:p:s:v")) != -1) { switch (ch) { case 'H': page_height = in(atof(optarg)); break; case 'L': linebreak = !linebreak; break; case 'P': parbreak = !parbreak; break; case 'W': page_width = in(atof(optarg)); break; case 'f': font = optarg; break; case 'j': justification = optarg; break; case 'l': leading = atof(optarg); break; case 'm': margin = in(atof(optarg)); break; case 'n': numindentlines = atoi(optarg); break; case 'p': parindent = atof(optarg); break; case 's': font_size = atof(optarg); break; case 'v': verbose = !verbose; break; case '?': default: cfklp_usage(stderr); return EXIT_FAILURE; } } argc -= optind; argv += optind; /* */ if (argc != 2) { fprintf(stderr, "%s: need an infile and an outfile\n", getprogname()); return EXIT_FAILURE; } infile_name = argv[0]; outfile_name = argv[1]; PS_boot(); cfklp = cfklp_new(infile_name, outfile_name); cfklp_set_font(cfklp, font); cfklp_set_font_size(cfklp, font_size); cfklp_set_justification(cfklp, justification); cfklp_set_page_size(cfklp, page_width, page_height, margin); cfklp_set_verbosity(cfklp, verbose); PS_set_value(cfklp->doc, "leading", leading); PS_set_value(cfklp->doc, "numindentlines", numindentlines); PS_set_value(cfklp->doc, "parindent", parindent); PS_set_parameter(cfklp->doc, "linebreak", bool_to_str(linebreak)); PS_set_parameter(cfklp->doc, "parbreak", bool_to_str(parbreak)); cfklp_read_infile(cfklp); if (cfklp->verbose) PS_list_values(cfklp->doc); cfklp_write_outfile(cfklp); cfklp_free(cfklp); PS_shutdown(); return EXIT_SUCCESS; }