From 4bd844d6842becf495834bda997d2731bd49316d Mon Sep 17 00:00:00 2001 From: Eilidh McAdam Date: Mon, 23 Jun 2014 20:55:21 +0100 Subject: Make Draw use paper size when printing - fdo#63905 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, Draw/Impress use the default size from the printer. Now Draw uses the paper size (specified in page formatting). Impress still uses the old method - not sure if this is correct but printing handouts etc probably complicate print/paper size. Reviewed-on: https://gerrit.libreoffice.org/9866 Reviewed-by: Matúš Kukan Tested-by: Matúš Kukan (cherry picked from commit 7b31e45ec7106d2cfbdbb7915d97667ba710f81c) Conflicts: sd/source/ui/view/DocumentRenderer.cxx Change-Id: If90bae4ac59cd95dd50fcd8deb25fd900756193e --- sd/source/ui/view/DocumentRenderer.cxx | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/sd/source/ui/view/DocumentRenderer.cxx b/sd/source/ui/view/DocumentRenderer.cxx index 4136e89d8762..52aa9c5b9912 100644 --- a/sd/source/ui/view/DocumentRenderer.cxx +++ b/sd/source/ui/view/DocumentRenderer.cxx @@ -1418,7 +1418,19 @@ private: else if (rInfo.maPageSize.Width() < rInfo.maPageSize.Height()) rInfo.meOrientation = ORIENTATION_LANDSCAPE; - const Size aPaperSize (rInfo.mpPrinter->GetPaperSize()); + // Draw should abide by specified paper size + Size aPaperSize; + if (mpOptions->IsDraw()) + { + aPaperSize.setWidth(rInfo.maPageSize.Width()); + aPaperSize.setHeight(rInfo.maPageSize.Height()); + } + else + { + aPaperSize.setWidth(rInfo.mpPrinter->GetPaperSize().Width()); + aPaperSize.setHeight(rInfo.mpPrinter->GetPaperSize().Height()); + } + if( (rInfo.meOrientation == ORIENTATION_LANDSCAPE && (aPaperSize.Width() < aPaperSize.Height())) || @@ -1483,10 +1495,21 @@ private: if (mpOptions->IsTime()) aInfo.msTimeDate += GetSdrGlobalData().GetLocaleData()->getTime( Time( Time::SYSTEM ), sal_False, sal_False ); - aInfo.maPrintSize = aInfo.mpPrinter->GetOutputSize(); - maPrintSize = awt::Size( - aInfo.mpPrinter->GetPaperSize().Width(), - aInfo.mpPrinter->GetPaperSize().Height()); + + // Draw should use specified paper size when printing + if (mpOptions->IsDraw()) + { + aInfo.maPrintSize = mrBase.GetDocument()->GetSdPage(0, PK_STANDARD)->GetSize(); + maPrintSize = awt::Size(aInfo.maPrintSize.Width(), + aInfo.maPrintSize.Height()); + } + else + { + aInfo.maPrintSize = aInfo.mpPrinter->GetOutputSize(); + maPrintSize = awt::Size( + aInfo.mpPrinter->GetPaperSize().Width(), + aInfo.mpPrinter->GetPaperSize().Height()); + } switch (mpOptions->GetOutputQuality()) { -- cgit v1.2.3