Index: sd/source/ui/view/PrintManager.cxx
===================================================================
RCS file: /cvs/graphics/sd/source/ui/view/PrintManager.cxx,v
retrieving revision 1.15
diff -u -p -r1.15 PrintManager.cxx
--- sd/source/ui/view/PrintManager.cxx	3 Apr 2007 16:27:36 -0000	1.15
+++ sd/source/ui/view/PrintManager.cxx	15 May 2007 12:27:20 -0000
@@ -1543,15 +1543,20 @@ void PrintManager::PrintStdOrNotes (
                         // printable area.
 						if (bPrint)
 						{
-                            if (bScalePage
-                                || (rInfo.mpPrintOpts && rInfo.mpPrintOpts->GetOptionsPrint().IsCutPage()))
+                            bool bCutPage = (rInfo.mpPrintOpts && rInfo.mpPrintOpts->GetOptionsPrint().IsCutPage());
+                            if (bScalePage || bCutPage)
                             {
                                 // Handlee 1 and 2.
+
+                                // if CutPage is set then do not move
+                                // it, otherwise move the scaled page
+                                // to printable area
+
                                 PrintPagePart(
                                     rInfo,
                                     pPage,
                                     *pPrintView,
-                                    Point(0,0),
+                                    bCutPage ? Point(-aPageOfs.X(), -aPageOfs.Y()) : Point(0,0),
                                     bPrintMarkedOnly,
                                     aPageStr,
                                     aPageOfs);
@@ -1561,7 +1566,12 @@ void PrintManager::PrintStdOrNotes (
                                 // Handle 3.  Print parts of the page in the
                                 // size of the printable area until the
                                 // whole page is covered.
-                                Point aOrigin (-aPageOfs.X(), -aPageOfs.Y());
+
+                                // keep the page content at its
+                                // position if it fits, otherwise move
+                                // it to the printable area
+
+                                Point aOrigin (aPageWidth < aPrintWidth ? -aPageOfs.X() : 0, aPageHeight < aPrintHeight ? -aPageOfs.Y() : 0);
                                 for (aPageOrigin = aOrigin;
                                      -aPageOrigin.Y()<aPageHeight;
                                          aPageOrigin.Y() -= aPrintHeight)
