Changeset 223 for trunk/src/JobPrint.cxx

Show
Ignore:
Timestamp:
06/11/06 15:35:34 (2 years ago)
Author:
jordi
Message:

The JobPrint? class now actally prints the PostScript? file.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/JobPrint.cxx

    r222 r223  
    6060} 
    6161 
     62gboolean 
     63JobPrint::getCollate () 
     64{ 
     65    return m_Collate; 
     66} 
     67 
    6268guint 
    6369JobPrint::getCurrentPage () 
     
    6672} 
    6773 
     74guint 
     75JobPrint::getNumberOfCopies () 
     76{ 
     77    return m_NumberOfCopies; 
     78} 
     79 
    6880IDocument & 
    6981JobPrint::getDocument () 
     
    8092} 
    8193 
     94PrintPageLayout 
     95JobPrint::getPageLayout () 
     96{ 
     97    return m_PageLayout; 
     98} 
     99 
     100PrintPageOrientation 
     101JobPrint::getPageOrientation () 
     102{ 
     103    return m_PageOrientation; 
     104} 
     105 
    82106const gchar * 
    83107JobPrint::getPageRangeString () 
     
    96120{ 
    97121    return m_PageWidth; 
     122} 
     123 
     124const gchar * 
     125JobPrint::getPrinterName () 
     126{ 
     127    return m_PrinterName; 
    98128} 
    99129 
     
    396426    JobPrint *job = (JobPrint *)data; 
    397427    job->getDocument().outputPostscriptEnd (); 
     428 
     429    // Add Cups options. 
     430    cups_option_t *options; 
     431    gint numOptions = 0; 
     432 
     433    gchar *numCopies = g_strdup_printf ("%d", job->getNumberOfCopies ()); 
     434    numOptions = cupsAddOption ("copies", numCopies, numOptions, &options); 
     435    g_free (numCopies); 
     436 
     437    gchar *collate = g_strdup (job->getCollate() ? "True" : "False"); 
     438    numOptions = cupsAddOption ("Collate", collate, numOptions, &options); 
     439    g_free (collate); 
     440 
     441    gchar *orientation = NULL; 
     442    if ( PRINT_PAGE_ORIENTATION_LANDSCAPE == job->getPageOrientation () ) 
     443    { 
     444        orientation = g_strdup_printf ("4"); 
     445    } 
     446    else 
     447    { 
     448        orientation = g_strdup_printf ("3"); 
     449    } 
     450    numOptions = cupsAddOption ("orientation-requested", orientation, 
     451                                 numOptions, &options); 
     452    g_free (orientation); 
     453 
     454    gchar *layout = NULL; 
     455    switch (job->getPageLayout ()) 
     456    { 
     457        case PRINT_PAGE_LAYOUT_2IN1: 
     458            layout = g_strdup_printf ("%d", 2); 
     459            break; 
     460 
     461        case PRINT_PAGE_LAYOUT_4IN1: 
     462            layout = g_strdup_printf ("%d", 4); 
     463            break; 
     464 
     465        default: 
     466            layout = g_strdup_printf ("%d", 1); 
     467    } 
     468    numOptions = cupsAddOption ("number-up", layout, numOptions, &options); 
     469 
     470    cupsPrintFile (job->getPrinterName (), job->getTempFileName (), 
     471                   job->getDocument ().getFileName (), numOptions, options); 
     472 
     473    cupsFreeOptions (numOptions, options); 
     474 
    398475    JOB_NOTIFIER_END (); 
    399476