Ignore:
Timestamp:
Aug 3, 2006, 6:24:49 PM (15 years ago)
Author:
Eugene Romanenko
Message:

postscript printing updates, ability to abort PS generation, gcc support changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/SOURCE/gui/print.cpp

    r91 r92  
    8686        char *title;
    8787        PrintSetup *psetup;
    88         bool abortPrinting;
     88        boolean abortPrinting;
    8989        ProgressDlg *progressDlg;
    9090
     
    293293    double pheight = ( (double)( curForm.cy - mTop - mBottom ) / 25.4 ) * 72.0;
    294294
    295     char *tmpps = "TMPLUCID.PS";
     295    char tmpps[ CCHMAXPATHCOMP ] = "";
     296    char *tmpenv = getenv( "TMP" );
     297    strcpy( tmpps, ( tmpenv == NULL ) ? ".\\" : tmpenv );
     298    if ( tmpps[ strlen( tmpps ) - 1 ] != '\\' ) {
     299        strcat( tmpps, "\\" );
     300    }
     301    strcat( tmpps, "TMPLUCID.PS" );
     302
    296303    BOOL rc = doc->exportToPostScript( ev, tmpps, psetup->pgfrom-1, psetup->pgto-1,
    297                                        pwidth, pheight, false );
    298     if ( !rc ) {
    299         unlink( tmpps );
    300         return false;
    301     }
     304                                       pwidth, pheight, false, &abortPrinting );
     305
    302306    if ( abortPrinting ) {
    303307        unlink( tmpps );
    304308        return true;
     309    }
     310    if ( !rc ) {
     311        unlink( tmpps );
     312        return false;
    305313    }
    306314
     
    338346
    339347    bool splerr = false;
     348    char *pcl_prolog = "\x1b%-12345X@PJL JOB\n@PJL ENTER LANGUAGE = POSTSCRIPT \n";
     349    char *pcl_epilog = "\x1b%-12345X@PJL EOJ\n";
     350
     351    if ( !( rc = SplQmWrite( hspl, strlen( pcl_prolog ), pcl_prolog ) ) ) {
     352        splerr = true;
     353    }
     354
    340355    void *buf = malloc( PS_PRINT_BUF_SIZE );
    341356    int rd = 0;
     
    350365    fclose( f );
    351366    unlink( tmpps );
     367
     368    if ( !splerr ) {
     369        if ( !( rc = SplQmWrite( hspl, strlen( pcl_epilog ), pcl_epilog ) ) ) {
     370            splerr = true;
     371        }
     372    }
    352373
    353374    if ( splerr ) {
Note: See TracChangeset for help on using the changeset viewer.