There is another call to PSOutputDev which should probably be fixed as well. Updated patch attached.
--- a/xpdf/XPDFViewer.cc 2012-03-05 13:12:22.000000000 +0100 +++ b/xpdf/XPDFViewer.cc 2012-03-05 13:13:47.000000000 +0100 @@ -3627,7 +3627,8 @@ { psOut = new PSOutputDev(psFileName->getCString(), doc->getXRef(), doc->getCatalog(), NULL, firstPage, lastPage, - psModePS); + psModePS, globalParams->getPSPaperWidth(), + globalParams->getPSPaperHeight(), globalParams->getPSDuplex()); if (psOut->isOk()) { doc->displayPages(psOut, firstPage, lastPage, 72, 72, 0, gTrue, globalParams->getPSCrop(), gFalse); @@ -3672,7 +3673,9 @@ for (i=beginPage;; i+=step) { psOut = new PSOutputDev(psFileName->getCString(), doc->getXRef(), - doc->getCatalog(), NULL, i, i, psModePS); + doc->getCatalog(), NULL, i, i, + psModePS, globalParams->getPSPaperWidth(), + globalParams->getPSPaperHeight(), globalParams->getPSDuplex()); if (psOut->isOk()) { doc->displayPages(psOut, i, i, 72, 72, 0, gTrue, globalParams->getPSCrop(), gFalse);