diff -Naur epdfview-0.1.6/src/PrintPter.cxx epdfview-0.1.6.tpg/src/PrintPter.cxx --- epdfview-0.1.6/src/PrintPter.cxx 2007-02-23 07:37:59.000000000 +0000 +++ epdfview-0.1.6.tpg/src/PrintPter.cxx 2008-03-28 00:11:36.000000000 +0000 @@ -230,20 +230,27 @@ ppdFindOption (printerPPD, "PageSize"); view.clearPageSizeList (); int pageSizeToSelect = 0; - ppd_choice_t *pageSizeChoice = pageSizeOption->choices; - for ( int currentSize = 0 ; - currentSize < pageSizeOption->num_choices ; - ++currentSize, ++pageSizeChoice ) + if ( 0 != pageSizeOption ) { - const gchar *sizeName = pageSizeChoice->text; - const gchar *sizeValue = pageSizeChoice->choice; - - view.addPageSize (_(sizeName), sizeValue); - if ( pageSizeChoice->marked ) + ppd_choice_t *pageSizeChoice = pageSizeOption->choices; + for ( int currentSize = 0 ; + currentSize < pageSizeOption->num_choices ; + ++currentSize, ++pageSizeChoice ) { - pageSizeToSelect = currentSize; + const gchar *sizeName = pageSizeChoice->text; + const gchar *sizeValue = pageSizeChoice->choice; + + view.addPageSize (_(sizeName), sizeValue); + if ( pageSizeChoice->marked ) + { + pageSizeToSelect = currentSize; + } } } + else + { + view.addPageSize (_("A4"), "A4"); + } view.selectPageSize (pageSizeToSelect); // Get the resolutions. @@ -251,29 +258,36 @@ ppdFindOption (printerPPD, "Resolution"); view.clearResolutionList (); int resolutionToSelect = 0; - ppd_choice_t *resolutionChoice = resolutionOption->choices; - for ( int currentRes = 0 ; - currentRes < resolutionOption->num_choices ; - ++currentRes, ++resolutionChoice ) + if ( 0 != resolutionOption ) { - const gchar *resName = resolutionChoice->text; - const gchar *resValue = resolutionChoice->choice; - - view.addResolution (_(resName), resValue); - if ( resolutionChoice->marked ) + ppd_choice_t *resolutionChoice = resolutionOption->choices; + for ( int currentRes = 0 ; + currentRes < resolutionOption->num_choices ; + ++currentRes, ++resolutionChoice ) { - resolutionToSelect = currentRes; + const gchar *resName = resolutionChoice->text; + const gchar *resValue = resolutionChoice->choice; + + view.addResolution (_(resName), resValue); + if ( resolutionChoice->marked ) + { + resolutionToSelect = currentRes; + } } } + else + { + view.addResolution (_("300 DPI"), "300x300dpi"); + } view.selectResolution (resolutionToSelect); // Get the color models. ppd_option_t *colorModelOption = ppdFindOption (printerPPD, "ColorModel"); view.clearColorModelList (); + int colorModelToSelect = 0; if ( NULL != colorModelOption ) { - int colorModelToSelect = 0; ppd_choice_t *colorModelChoice = colorModelOption->choices; for ( int currentColor = 0 ; currentColor < colorModelOption->num_choices ; @@ -288,12 +302,12 @@ colorModelToSelect = currentColor; } } - view.selectColorModel (colorModelToSelect); } else { view.addColorModel (_("Grayscale"), "Gray"); } + view.selectColorModel (colorModelToSelect); ppdClose (printerPPD); } }