Пример #1
0
YZPrinter::YZPrinter( YView *view ) /*: QPrinter(QPrinter::PrinterResolution) */{
    PS_mp_init();
    PS_boot();

    mView = view;

    /*setPageSize( QPrinter::A4 );
    setColorMode( QPrinter::Color );*/
}
Пример #2
0
  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
  }
Пример #3
0
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;
}