1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #include "vbapagesetup.hxx" 24 #include "cellsuno.hxx" 25 #include "convuno.hxx" 26 #include "rangelst.hxx" 27 #include "excelvbahelper.hxx" 28 #include <com/sun/star/sheet/XPrintAreas.hpp> 29 #include <com/sun/star/sheet/XHeaderFooterContent.hpp> 30 #include <com/sun/star/text/XText.hpp> 31 #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> 32 #include <com/sun/star/container/XNameAccess.hpp> 33 #include <ooo/vba/excel/XlPageOrientation.hpp> 34 #include <ooo/vba/excel/XlOrder.hpp> 35 #include <ooo/vba/excel/Constants.hpp> 36 37 using namespace ::com::sun::star; 38 using namespace ::ooo::vba; 39 40 #define ZOOM_IN 10 41 #define ZOOM_MAX 400 42 43 bool getScRangeListForAddress( const rtl::OUString& sName, ScDocShell* pDocSh, ScRange& refRange, ScRangeList& aCellRanges, formula::FormulaGrammar::AddressConvention aConv = formula::FormulaGrammar::CONV_XL_A1 ) throw ( uno::RuntimeException ); 44 45 ScVbaPageSetup::ScVbaPageSetup(const uno::Reference< XHelperInterface >& xParent, 46 const uno::Reference< uno::XComponentContext >& xContext, 47 const uno::Reference< sheet::XSpreadsheet >& xSheet, 48 const uno::Reference< frame::XModel >& xModel) throw (uno::RuntimeException): 49 ScVbaPageSetup_BASE( xParent, xContext ), mxSheet( xSheet ) 50 { 51 // query for current page style 52 mxModel.set( xModel, uno::UNO_QUERY_THROW ); 53 uno::Reference< beans::XPropertySet > xSheetProps( mxSheet, uno::UNO_QUERY_THROW ); 54 uno::Any aValue = xSheetProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "PageStyle" ))); 55 rtl::OUString aStyleName; 56 aValue >>= aStyleName; 57 58 uno::Reference< style::XStyleFamiliesSupplier > xStyleFamiliesSup( mxModel, uno::UNO_QUERY_THROW ); 59 uno::Reference< container::XNameAccess > xStyleFamilies = xStyleFamiliesSup->getStyleFamilies(); 60 uno::Reference< container::XNameAccess > xPageStyle( xStyleFamilies->getByName(rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageStyles"))), uno::UNO_QUERY_THROW ); 61 mxPageProps.set( xPageStyle->getByName(aStyleName), uno::UNO_QUERY_THROW ); 62 mnOrientLandscape = excel::XlPageOrientation::xlLandscape; 63 mnOrientPortrait = excel::XlPageOrientation::xlPortrait; 64 } 65 66 rtl::OUString SAL_CALL ScVbaPageSetup::getPrintArea() throw (css::uno::RuntimeException) 67 { 68 String aPrintArea; 69 uno::Reference< sheet::XPrintAreas > xPrintAreas( mxSheet, uno::UNO_QUERY_THROW ); 70 uno::Sequence< table::CellRangeAddress > aSeq = xPrintAreas->getPrintAreas(); 71 sal_Int32 nCount = aSeq.getLength(); 72 if( nCount ) 73 { 74 ScAddress::Details aDetails( formula::FormulaGrammar::CONV_XL_A1, 0, 0 ); 75 sal_uInt16 nFlags = SCA_VALID; 76 nFlags |= ( SCA_TAB_ABSOLUTE | SCA_COL_ABSOLUTE | SCA_ROW_ABSOLUTE | SCA_TAB2_ABSOLUTE | SCA_COL2_ABSOLUTE | SCA_ROW2_ABSOLUTE ); 77 ScRangeList aRangeList; 78 for( sal_Int32 i=0; i<nCount; i++ ) 79 { 80 ScRange aRange; 81 ScUnoConversion::FillScRange( aRange, aSeq[i] ); 82 aRangeList.Append( aRange ); 83 } 84 ScDocument* pDoc = excel::getDocShell( mxModel )->GetDocument(); 85 aRangeList.Format( aPrintArea, nFlags, pDoc, formula::FormulaGrammar::CONV_XL_A1, ',' ); 86 } 87 88 return aPrintArea; 89 } 90 91 void SAL_CALL ScVbaPageSetup::setPrintArea( const rtl::OUString& rAreas ) throw (css::uno::RuntimeException) 92 { 93 uno::Reference< sheet::XPrintAreas > xPrintAreas( mxSheet, uno::UNO_QUERY_THROW ); 94 if( rAreas.getLength() == 0 || 95 rAreas.equalsIgnoreAsciiCase ( rtl::OUString::createFromAscii("FALSE") ) ) 96 { 97 // print the whole sheet 98 uno::Sequence< table::CellRangeAddress > aSeq; 99 xPrintAreas->setPrintAreas( aSeq ); 100 } 101 else 102 { 103 ScRangeList aCellRanges; 104 ScRange aRange; 105 if( getScRangeListForAddress( rAreas, excel::getDocShell( mxModel ) , aRange, aCellRanges ) ) 106 { 107 uno::Sequence< table::CellRangeAddress > aSeq( aCellRanges.Count() ); 108 sal_uInt16 i=0; 109 for( ScRange* pRange = aCellRanges.First(); pRange; pRange = aCellRanges.Next() ) 110 { 111 table::CellRangeAddress aRangeAddress; 112 ScUnoConversion::FillApiRange( aRangeAddress, *pRange ); 113 aSeq[ i++ ] = aRangeAddress; 114 } 115 xPrintAreas->setPrintAreas( aSeq ); 116 } 117 } 118 } 119 120 double SAL_CALL ScVbaPageSetup::getHeaderMargin() throw (css::uno::RuntimeException) 121 { 122 return VbaPageSetupBase::getHeaderMargin(); 123 } 124 125 void SAL_CALL ScVbaPageSetup::setHeaderMargin( double margin ) throw (css::uno::RuntimeException) 126 { 127 VbaPageSetupBase::setHeaderMargin( margin ); 128 } 129 130 double SAL_CALL ScVbaPageSetup::getFooterMargin() throw (css::uno::RuntimeException) 131 { 132 return VbaPageSetupBase::getFooterMargin(); 133 } 134 135 void SAL_CALL ScVbaPageSetup::setFooterMargin( double margin ) throw (css::uno::RuntimeException) 136 { 137 VbaPageSetupBase::setFooterMargin( margin ); 138 } 139 140 uno::Any SAL_CALL ScVbaPageSetup::getFitToPagesTall() throw (css::uno::RuntimeException) 141 { 142 return mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPagesY"))); 143 } 144 145 void SAL_CALL ScVbaPageSetup::setFitToPagesTall( const uno::Any& fitToPagesTall) throw (css::uno::RuntimeException) 146 { 147 sal_uInt16 scaleToPageY = 0; 148 try 149 { 150 sal_Bool aValue; 151 if( fitToPagesTall.getValueTypeClass() != uno::TypeClass_BOOLEAN || (fitToPagesTall >>= aValue)) 152 { 153 fitToPagesTall >>= scaleToPageY; 154 } 155 156 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPagesY")), uno::makeAny( scaleToPageY )); 157 } 158 catch( uno::Exception& ) 159 { 160 } 161 } 162 163 uno::Any SAL_CALL ScVbaPageSetup::getFitToPagesWide() throw (css::uno::RuntimeException) 164 { 165 return mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPagesX"))); 166 } 167 168 void SAL_CALL ScVbaPageSetup::setFitToPagesWide( const uno::Any& fitToPagesWide) throw (css::uno::RuntimeException) 169 { 170 sal_uInt16 scaleToPageX = 0; 171 try 172 { 173 sal_Bool aValue = sal_False; 174 if( fitToPagesWide.getValueTypeClass() != uno::TypeClass_BOOLEAN || (fitToPagesWide >>= aValue)) 175 { 176 fitToPagesWide >>= scaleToPageX; 177 } 178 179 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPagesX")), uno::makeAny( scaleToPageX )); 180 } 181 catch( uno::Exception& ) 182 { 183 } 184 } 185 186 uno::Any SAL_CALL ScVbaPageSetup::getZoom() throw (css::uno::RuntimeException) 187 { 188 return mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageScale"))); 189 } 190 191 void SAL_CALL ScVbaPageSetup::setZoom( const uno::Any& zoom) throw (css::uno::RuntimeException) 192 { 193 sal_uInt16 pageScale = 0; 194 try 195 { 196 if( zoom.getValueTypeClass() == uno::TypeClass_BOOLEAN ) 197 { 198 sal_Bool aValue = sal_False; 199 zoom >>= aValue; 200 if( aValue ) 201 { 202 DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() ); 203 } 204 } 205 else 206 { 207 zoom >>= pageScale; 208 if(( pageScale < ZOOM_IN )||( pageScale > ZOOM_MAX )) 209 { 210 DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() ); 211 } 212 } 213 214 // these only exist in S08 215 sal_uInt16 nScale = 0; 216 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPages")), uno::makeAny( nScale )); 217 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPagesX")), uno::makeAny( nScale )); 218 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ScaleToPagesY")), uno::makeAny( nScale )); 219 } 220 catch( beans::UnknownPropertyException& ) 221 { 222 if( pageScale == 0 ) 223 { 224 DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() ); 225 } 226 } 227 catch( uno::Exception& ) 228 { 229 } 230 231 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PageScale")), uno::makeAny( pageScale )); 232 } 233 234 rtl::OUString SAL_CALL ScVbaPageSetup::getLeftHeader() throw (css::uno::RuntimeException) 235 { 236 rtl::OUString leftHeader; 237 try 238 { 239 uno::Reference<sheet::XHeaderFooterContent> xHeaderContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent"))), uno::UNO_QUERY_THROW); 240 if( xHeaderContent.is() ) 241 { 242 uno::Reference< text::XText > xText = xHeaderContent->getLeftText(); 243 leftHeader = xText->getString(); 244 } 245 } 246 catch( uno::Exception& ) 247 { 248 } 249 250 return leftHeader; 251 } 252 253 void SAL_CALL ScVbaPageSetup::setLeftHeader( const rtl::OUString& leftHeader) throw (css::uno::RuntimeException) 254 { 255 try 256 { 257 uno::Reference<sheet::XHeaderFooterContent> xHeaderContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent"))), uno::UNO_QUERY_THROW); 258 if( xHeaderContent.is() ) 259 { 260 uno::Reference< text::XText > xText = xHeaderContent->getLeftText(); 261 xText->setString( leftHeader ); 262 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent")), uno::makeAny(xHeaderContent) ); 263 } 264 } 265 catch( uno::Exception& ) 266 { 267 } 268 } 269 270 rtl::OUString SAL_CALL ScVbaPageSetup::getCenterHeader() throw (css::uno::RuntimeException) 271 { 272 rtl::OUString centerHeader; 273 try 274 { 275 uno::Reference<sheet::XHeaderFooterContent> xHeaderContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent"))), uno::UNO_QUERY_THROW); 276 if( xHeaderContent.is() ) 277 { 278 uno::Reference< text::XText > xText = xHeaderContent->getCenterText(); 279 centerHeader = xText->getString(); 280 } 281 } 282 catch( uno::Exception& ) 283 { 284 } 285 286 return centerHeader; 287 } 288 289 void SAL_CALL ScVbaPageSetup::setCenterHeader( const rtl::OUString& centerHeader) throw (css::uno::RuntimeException) 290 { 291 try 292 { 293 uno::Reference<sheet::XHeaderFooterContent> xHeaderContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent"))), uno::UNO_QUERY_THROW); 294 if( xHeaderContent.is() ) 295 { 296 uno::Reference< text::XText > xText = xHeaderContent->getCenterText(); 297 xText->setString( centerHeader ); 298 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent")), uno::makeAny(xHeaderContent) ); 299 } 300 } 301 catch( uno::Exception& ) 302 { 303 } 304 } 305 306 rtl::OUString SAL_CALL ScVbaPageSetup::getRightHeader() throw (css::uno::RuntimeException) 307 { 308 rtl::OUString rightHeader; 309 try 310 { 311 uno::Reference<sheet::XHeaderFooterContent> xHeaderContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent"))), uno::UNO_QUERY_THROW); 312 if( xHeaderContent.is() ) 313 { 314 uno::Reference< text::XText > xText = xHeaderContent->getRightText(); 315 rightHeader = xText->getString(); 316 } 317 } 318 catch( uno::Exception& ) 319 { 320 } 321 322 return rightHeader; 323 } 324 325 void SAL_CALL ScVbaPageSetup::setRightHeader( const rtl::OUString& rightHeader) throw (css::uno::RuntimeException) 326 { 327 try 328 { 329 uno::Reference<sheet::XHeaderFooterContent> xHeaderContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent"))), uno::UNO_QUERY_THROW); 330 if( xHeaderContent.is() ) 331 { 332 uno::Reference< text::XText > xText = xHeaderContent->getRightText(); 333 xText->setString( rightHeader ); 334 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageHeaderContent")), uno::makeAny(xHeaderContent) ); 335 } 336 } 337 catch( uno::Exception& ) 338 { 339 } 340 } 341 342 rtl::OUString SAL_CALL ScVbaPageSetup::getLeftFooter() throw (css::uno::RuntimeException) 343 { 344 rtl::OUString leftFooter; 345 try 346 { 347 uno::Reference<sheet::XHeaderFooterContent> xFooterContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent"))), uno::UNO_QUERY_THROW); 348 if( xFooterContent.is() ) 349 { 350 uno::Reference< text::XText > xText = xFooterContent->getLeftText(); 351 leftFooter = xText->getString(); 352 } 353 } 354 catch( uno::Exception& ) 355 { 356 } 357 358 return leftFooter; 359 } 360 361 void SAL_CALL ScVbaPageSetup::setLeftFooter( const rtl::OUString& leftFooter) throw (css::uno::RuntimeException) 362 { 363 try 364 { 365 uno::Reference<sheet::XHeaderFooterContent> xFooterContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent"))), uno::UNO_QUERY_THROW); 366 if( xFooterContent.is() ) 367 { 368 uno::Reference< text::XText > xText = xFooterContent->getLeftText(); 369 xText->setString( leftFooter ); 370 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent")), uno::makeAny(xFooterContent) ); 371 } 372 } 373 catch( uno::Exception& ) 374 { 375 } 376 } 377 378 rtl::OUString SAL_CALL ScVbaPageSetup::getCenterFooter() throw (css::uno::RuntimeException) 379 { 380 rtl::OUString centerFooter; 381 try 382 { 383 uno::Reference<sheet::XHeaderFooterContent> xFooterContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent"))), uno::UNO_QUERY_THROW); 384 if( xFooterContent.is() ) 385 { 386 uno::Reference< text::XText > xText = xFooterContent->getCenterText(); 387 centerFooter = xText->getString(); 388 } 389 } 390 catch( uno::Exception& ) 391 { 392 } 393 394 return centerFooter; 395 } 396 397 void SAL_CALL ScVbaPageSetup::setCenterFooter( const rtl::OUString& centerFooter) throw (css::uno::RuntimeException) 398 { 399 try 400 { 401 uno::Reference<sheet::XHeaderFooterContent> xFooterContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent"))), uno::UNO_QUERY_THROW); 402 if( xFooterContent.is() ) 403 { 404 uno::Reference< text::XText > xText = xFooterContent->getCenterText(); 405 xText->setString( centerFooter ); 406 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent")), uno::makeAny(xFooterContent) ); 407 } 408 } 409 catch( uno::Exception& ) 410 { 411 } 412 413 } 414 415 rtl::OUString SAL_CALL ScVbaPageSetup::getRightFooter() throw (css::uno::RuntimeException) 416 { 417 rtl::OUString rightFooter; 418 try 419 { 420 uno::Reference<sheet::XHeaderFooterContent> xFooterContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent"))), uno::UNO_QUERY_THROW); 421 if( xFooterContent.is() ) 422 { 423 uno::Reference< text::XText > xText = xFooterContent->getRightText(); 424 rightFooter = xText->getString(); 425 } 426 } 427 catch( uno::Exception& ) 428 { 429 } 430 431 return rightFooter; 432 } 433 434 void SAL_CALL ScVbaPageSetup::setRightFooter( const rtl::OUString& rightFooter) throw (css::uno::RuntimeException) 435 { 436 try 437 { 438 uno::Reference<sheet::XHeaderFooterContent> xFooterContent( mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent"))), uno::UNO_QUERY_THROW); 439 if( xFooterContent.is() ) 440 { 441 uno::Reference< text::XText > xText = xFooterContent->getRightText(); 442 xText->setString( rightFooter ); 443 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("RightPageFooterContent")), uno::makeAny(xFooterContent) ); 444 } 445 } 446 catch( uno::Exception& ) 447 { 448 } 449 } 450 451 sal_Int32 SAL_CALL ScVbaPageSetup::getOrder() throw (css::uno::RuntimeException) 452 { 453 sal_Int32 order = excel::XlOrder::xlDownThenOver; 454 try 455 { 456 uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PrintDownFirst"))); 457 sal_Bool bPrintDownFirst = sal_False; 458 aValue >>= bPrintDownFirst; 459 if( !bPrintDownFirst ) 460 order = excel::XlOrder::xlOverThenDown; 461 } 462 catch( uno::Exception& ) 463 { 464 } 465 466 return order; 467 } 468 469 void SAL_CALL ScVbaPageSetup::setOrder( sal_Int32 order) throw (css::uno::RuntimeException) 470 { 471 sal_Bool bOrder = sal_True; 472 switch( order ) 473 { 474 case excel::XlOrder::xlDownThenOver: 475 break; 476 case excel::XlOrder::xlOverThenDown: 477 bOrder = sal_False; 478 break; 479 default: 480 DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() ); 481 } 482 483 try 484 { 485 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PrintDownFirst")), uno::makeAny( bOrder )); 486 } 487 catch( uno::Exception& ) 488 { 489 } 490 } 491 492 sal_Int32 SAL_CALL ScVbaPageSetup::getFirstPageNumber() throw (css::uno::RuntimeException) 493 { 494 sal_Int16 number = 0; 495 try 496 { 497 uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FirstPageNumber"))); 498 aValue >>= number; 499 } 500 catch( uno::Exception& ) 501 { 502 } 503 504 if( number ==0 ) 505 { 506 number = excel::Constants::xlAutomatic; 507 } 508 509 return number; 510 } 511 512 void SAL_CALL ScVbaPageSetup::setFirstPageNumber( sal_Int32 firstPageNumber) throw (css::uno::RuntimeException) 513 { 514 if( firstPageNumber < 0 ) 515 DebugHelper::exception(SbERR_BAD_PARAMETER, rtl::OUString() ); 516 if( firstPageNumber == excel::Constants::xlAutomatic ) 517 firstPageNumber = 0; 518 519 try 520 { 521 uno::Any aValue; 522 aValue <<= (sal_Int16)firstPageNumber; 523 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("FirstPageNumber")), aValue ); 524 } 525 catch( uno::Exception& ) 526 { 527 } 528 } 529 530 sal_Bool SAL_CALL ScVbaPageSetup::getCenterVertically() throw (css::uno::RuntimeException) 531 { 532 sal_Bool centerVertically = sal_False; 533 try 534 { 535 uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CenterVertically"))); 536 aValue >>= centerVertically; 537 } 538 catch( uno::Exception& ) 539 { 540 } 541 return centerVertically; 542 } 543 544 void SAL_CALL ScVbaPageSetup::setCenterVertically( sal_Bool centerVertically) throw (css::uno::RuntimeException) 545 { 546 try 547 { 548 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CenterVertically")), uno::makeAny( centerVertically )); 549 } 550 catch( uno::Exception& ) 551 { 552 } 553 } 554 555 sal_Bool SAL_CALL ScVbaPageSetup::getCenterHorizontally() throw (css::uno::RuntimeException) 556 { 557 sal_Bool centerHorizontally = sal_False; 558 try 559 { 560 uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CenterHorizontally"))); 561 aValue >>= centerHorizontally; 562 } 563 catch( uno::Exception& ) 564 { 565 } 566 return centerHorizontally; 567 } 568 569 void SAL_CALL ScVbaPageSetup::setCenterHorizontally( sal_Bool centerHorizontally) throw (css::uno::RuntimeException) 570 { 571 try 572 { 573 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("CenterHorizontally")), uno::makeAny( centerHorizontally )); 574 } 575 catch( uno::Exception& ) 576 { 577 } 578 } 579 580 sal_Bool SAL_CALL ScVbaPageSetup::getPrintHeadings() throw (css::uno::RuntimeException) 581 { 582 sal_Bool printHeadings = sal_False; 583 try 584 { 585 uno::Any aValue = mxPageProps->getPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PrintHeaders"))); 586 aValue >>= printHeadings; 587 } 588 catch( uno::Exception& ) 589 { 590 } 591 return printHeadings; 592 } 593 594 void SAL_CALL ScVbaPageSetup::setPrintHeadings( sal_Bool printHeadings) throw (css::uno::RuntimeException) 595 { 596 try 597 { 598 mxPageProps->setPropertyValue( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("PrintHeaders")), uno::makeAny( printHeadings )); 599 } 600 catch( uno::Exception& ) 601 { 602 } 603 } 604 605 rtl::OUString& 606 ScVbaPageSetup::getServiceImplName() 607 { 608 static rtl::OUString sImplName( RTL_CONSTASCII_USTRINGPARAM("ScVbaPageSetup") ); 609 return sImplName; 610 } 611 612 uno::Sequence< rtl::OUString > 613 ScVbaPageSetup::getServiceNames() 614 { 615 static uno::Sequence< rtl::OUString > aServiceNames; 616 if ( aServiceNames.getLength() == 0 ) 617 { 618 aServiceNames.realloc( 1 ); 619 aServiceNames[ 0 ] = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("ooo.vba.excel.PageSetup" ) ); 620 } 621 return aServiceNames; 622 } 623