1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 // MARKER(update_precomp.py): autogen include statement, do not remove 29 #include "precompiled_vcl.hxx" 30 31 #include <pdfwriter_impl.hxx> 32 #include <vcl/bitmapex.hxx> 33 #include <vcl/image.hxx> 34 35 using namespace vcl; 36 37 PDFWriter::AnyWidget::~AnyWidget() 38 { 39 } 40 41 PDFWriter::PDFWriter( const PDFWriter::PDFWriterContext& rContext, const com::sun::star::uno::Reference< com::sun::star::beans::XMaterialHolder >& xEnc ) 42 : 43 pImplementation( new PDFWriterImpl( rContext, xEnc, *this ) ) 44 { 45 } 46 47 PDFWriter::~PDFWriter() 48 { 49 delete (PDFWriterImpl*)pImplementation; 50 } 51 52 OutputDevice* PDFWriter::GetReferenceDevice() 53 { 54 return ((PDFWriterImpl*)pImplementation)->getReferenceDevice(); 55 } 56 57 sal_Int32 PDFWriter::NewPage( sal_Int32 nPageWidth, sal_Int32 nPageHeight, Orientation eOrientation ) 58 { 59 return ((PDFWriterImpl*)pImplementation)->newPage( nPageWidth, nPageHeight, eOrientation ); 60 } 61 62 bool PDFWriter::Emit() 63 { 64 return ((PDFWriterImpl*)pImplementation)->emit(); 65 } 66 67 PDFWriter::PDFVersion PDFWriter::GetVersion() const 68 { 69 return ((PDFWriterImpl*)pImplementation)->getVersion(); 70 } 71 72 void PDFWriter::SetDocumentLocale( const com::sun::star::lang::Locale& rLoc ) 73 { 74 ((PDFWriterImpl*)pImplementation)->setDocumentLocale( rLoc ); 75 } 76 77 void PDFWriter::SetFont( const Font& rFont ) 78 { 79 ((PDFWriterImpl*)pImplementation)->setFont( rFont ); 80 } 81 82 void PDFWriter::DrawText( const Point& rPos, const String& rText ) 83 { 84 ((PDFWriterImpl*)pImplementation)->drawText( rPos, rText ); 85 } 86 87 void PDFWriter::DrawTextLine( 88 const Point& rPos, 89 long nWidth, 90 FontStrikeout eStrikeout, 91 FontUnderline eUnderline, 92 FontUnderline eOverline, 93 sal_Bool bUnderlineAbove ) 94 { 95 ((PDFWriterImpl*)pImplementation)->drawTextLine( rPos, nWidth, eStrikeout, eUnderline, eOverline, bUnderlineAbove ); 96 } 97 98 void PDFWriter::DrawTextArray( 99 const Point& rStartPt, 100 const XubString& rStr, 101 const sal_Int32* pDXAry, 102 xub_StrLen nIndex, 103 xub_StrLen nLen ) 104 { 105 ((PDFWriterImpl*)pImplementation)->drawTextArray( rStartPt, rStr, pDXAry, nIndex, nLen ); 106 } 107 108 void PDFWriter::DrawStretchText( 109 const Point& rStartPt, 110 sal_uLong nWidth, 111 const XubString& rStr, 112 xub_StrLen nIndex, 113 xub_StrLen nLen ) 114 { 115 ((PDFWriterImpl*)pImplementation)->drawStretchText( rStartPt, nWidth, rStr, nIndex, nLen ); 116 } 117 118 void PDFWriter::DrawText( 119 const Rectangle& rRect, 120 const XubString& rStr, 121 sal_uInt16 nStyle ) 122 { 123 ((PDFWriterImpl*)pImplementation)->drawText( rRect, rStr, nStyle ); 124 } 125 126 void PDFWriter::DrawLine( const Point& rStart, const Point& rStop ) 127 { 128 ((PDFWriterImpl*)pImplementation)->drawLine( rStart, rStop ); 129 } 130 131 void PDFWriter::DrawLine( const Point& rStart, const Point& rStop, const LineInfo& rInfo ) 132 { 133 ((PDFWriterImpl*)pImplementation)->drawLine( rStart, rStop, rInfo ); 134 } 135 136 void PDFWriter::DrawPolygon( const Polygon& rPoly ) 137 { 138 ((PDFWriterImpl*)pImplementation)->drawPolygon( rPoly ); 139 } 140 141 void PDFWriter::DrawPolyLine( const Polygon& rPoly ) 142 { 143 ((PDFWriterImpl*)pImplementation)->drawPolyLine( rPoly ); 144 } 145 146 void PDFWriter::DrawRect( const Rectangle& rRect ) 147 { 148 ((PDFWriterImpl*)pImplementation)->drawRectangle( rRect ); 149 } 150 151 void PDFWriter::DrawRect( const Rectangle& rRect, sal_uLong nHorzRound, sal_uLong nVertRound ) 152 { 153 ((PDFWriterImpl*)pImplementation)->drawRectangle( rRect, nHorzRound, nVertRound ); 154 } 155 156 void PDFWriter::DrawEllipse( const Rectangle& rRect ) 157 { 158 ((PDFWriterImpl*)pImplementation)->drawEllipse( rRect ); 159 } 160 161 void PDFWriter::DrawArc( const Rectangle& rRect, const Point& rStart, const Point& rStop ) 162 { 163 ((PDFWriterImpl*)pImplementation)->drawArc( rRect, rStart, rStop, false, false ); 164 } 165 166 void PDFWriter::DrawPie( const Rectangle& rRect, const Point& rStart, const Point& rStop ) 167 { 168 ((PDFWriterImpl*)pImplementation)->drawArc( rRect, rStart, rStop, true, false ); 169 } 170 171 void PDFWriter::DrawChord( const Rectangle& rRect, const Point& rStart, const Point& rStop ) 172 { 173 ((PDFWriterImpl*)pImplementation)->drawArc( rRect, rStart, rStop, false, true ); 174 } 175 176 void PDFWriter::DrawPolyLine( const Polygon& rPoly, const LineInfo& rInfo ) 177 { 178 ((PDFWriterImpl*)pImplementation)->drawPolyLine( rPoly, rInfo ); 179 } 180 181 void PDFWriter::DrawPolyLine( const Polygon& rPoly, const ExtLineInfo& rInfo ) 182 { 183 ((PDFWriterImpl*)pImplementation)->drawPolyLine( rPoly, rInfo ); 184 } 185 186 void PDFWriter::DrawPolyPolygon( const PolyPolygon& rPolyPoly ) 187 { 188 ((PDFWriterImpl*)pImplementation)->drawPolyPolygon( rPolyPoly ); 189 } 190 191 void PDFWriter::DrawPixel( const Point& rPos, const Color& rColor ) 192 { 193 ((PDFWriterImpl*)pImplementation)->drawPixel( rPos, rColor ); 194 } 195 196 void PDFWriter::DrawPixel( const Polygon& rPts, const Color* pColors ) 197 { 198 ((PDFWriterImpl*)pImplementation)->drawPixel( rPts, pColors ); 199 } 200 201 void PDFWriter::DrawBitmap( const Point& rDestPt, const Bitmap& rBitmap ) 202 { 203 Size aSize = OutputDevice::LogicToLogic( rBitmap.GetPrefSize(), 204 rBitmap.GetPrefMapMode(), 205 ((PDFWriterImpl*)pImplementation)->getMapMode() ); 206 ((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, aSize, rBitmap ); 207 } 208 209 void PDFWriter::DrawBitmap( const Point& rDestPt, const Size& rDestSize, const Bitmap& rBitmap ) 210 { 211 ((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, rDestSize, rBitmap ); 212 } 213 214 void PDFWriter::DrawBitmap( const Point& rDestPt, const Size& rDestSize, const Point& rSrcPtPixel, const Size& rSrcSizePixel, const Bitmap& rBitmap ) 215 { 216 Bitmap aBitmap( rBitmap ); 217 aBitmap.Crop( Rectangle( rSrcPtPixel, rSrcSizePixel ) ); 218 ((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, rDestSize, aBitmap ); 219 } 220 221 void PDFWriter::DrawBitmapEx( const Point& rDestPt, const BitmapEx& rBitmap ) 222 { 223 Size aSize = OutputDevice::LogicToLogic( rBitmap.GetPrefSize(), 224 rBitmap.GetPrefMapMode(), 225 ((PDFWriterImpl*)pImplementation)->getMapMode() ); 226 ((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, aSize, rBitmap ); 227 } 228 229 void PDFWriter::DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, const BitmapEx& rBitmap ) 230 { 231 ((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, rDestSize, rBitmap ); 232 } 233 234 void PDFWriter::DrawBitmapEx( const Point& rDestPt, const Size& rDestSize, const Point& rSrcPtPixel, const Size& rSrcSizePixel, const BitmapEx& rBitmap ) 235 { 236 if ( !!rBitmap ) 237 { 238 BitmapEx aBitmap( rBitmap ); 239 aBitmap.Crop( Rectangle( rSrcPtPixel, rSrcSizePixel ) ); 240 ((PDFWriterImpl*)pImplementation)->drawBitmap( rDestPt, rDestSize, aBitmap ); 241 } 242 } 243 244 void PDFWriter::DrawMask( const Point& rDestPt, const Bitmap& rBitmap, const Color& rMaskColor ) 245 { 246 Size aSize = OutputDevice::LogicToLogic( rBitmap.GetPrefSize(), 247 rBitmap.GetPrefMapMode(), 248 ((PDFWriterImpl*)pImplementation)->getMapMode() ); 249 ((PDFWriterImpl*)pImplementation)->drawMask( rDestPt, aSize, rBitmap, rMaskColor ); 250 } 251 252 void PDFWriter::DrawMask( const Point& rDestPt, const Size& rDestSize, const Bitmap& rBitmap, const Color& rMaskColor ) 253 { 254 ((PDFWriterImpl*)pImplementation)->drawMask( rDestPt, rDestSize, rBitmap, rMaskColor ); 255 } 256 257 void PDFWriter::DrawMask( const Point& rDestPt, const Size& rDestSize, const Point& rSrcPtPixel, const Size& rSrcSizePixel, const Bitmap& rBitmap, const Color& rMaskColor ) 258 { 259 Bitmap aBitmap( rBitmap ); 260 aBitmap.Crop( Rectangle( rSrcPtPixel, rSrcSizePixel ) ); 261 ((PDFWriterImpl*)pImplementation)->drawMask( rDestPt, rDestSize, aBitmap, rMaskColor ); 262 } 263 264 void PDFWriter::DrawGradient( const Rectangle& rRect, const Gradient& rGradient ) 265 { 266 ((PDFWriterImpl*)pImplementation)->drawGradient( rRect, rGradient ); 267 } 268 269 void PDFWriter::DrawGradient( const PolyPolygon& rPolyPoly, const Gradient& rGradient ) 270 { 271 ((PDFWriterImpl*)pImplementation)->drawGradient( rPolyPoly, rGradient ); 272 } 273 274 void PDFWriter::DrawHatch( const PolyPolygon& rPolyPoly, const Hatch& rHatch ) 275 { 276 ((PDFWriterImpl*)pImplementation)->drawHatch( rPolyPoly, rHatch ); 277 } 278 279 void PDFWriter::DrawWallpaper( const Rectangle& rRect, const Wallpaper& rWallpaper ) 280 { 281 ((PDFWriterImpl*)pImplementation)->drawWallpaper( rRect, rWallpaper ); 282 } 283 284 void PDFWriter::DrawTransparent( const PolyPolygon& rPolyPoly, sal_uInt16 nTransparencePercent ) 285 { 286 ((PDFWriterImpl*)pImplementation)->drawTransparent( rPolyPoly, nTransparencePercent ); 287 } 288 289 void PDFWriter::BeginTransparencyGroup() 290 { 291 ((PDFWriterImpl*)pImplementation)->beginTransparencyGroup(); 292 } 293 294 void PDFWriter::EndTransparencyGroup( const Rectangle& rRect, sal_uInt16 nTransparentPercent ) 295 { 296 ((PDFWriterImpl*)pImplementation)->endTransparencyGroup( rRect, nTransparentPercent ); 297 } 298 299 void PDFWriter::EndTransparencyGroup( const Rectangle& rRect, const Bitmap& rAlphaMask ) 300 { 301 ((PDFWriterImpl*)pImplementation)->endTransparencyGroup( rRect, rAlphaMask ); 302 } 303 304 void PDFWriter::Push( sal_uInt16 nFlags ) 305 { 306 ((PDFWriterImpl*)pImplementation)->push( nFlags ); 307 } 308 309 void PDFWriter::Pop() 310 { 311 ((PDFWriterImpl*)pImplementation)->pop(); 312 } 313 314 void PDFWriter::SetMapMode( const MapMode& rMapMode ) 315 { 316 ((PDFWriterImpl*)pImplementation)->setMapMode( rMapMode ); 317 } 318 319 void PDFWriter::SetMapMode() 320 { 321 ((PDFWriterImpl*)pImplementation)->setMapMode(); 322 } 323 324 void PDFWriter::SetLineColor( const Color& rColor ) 325 { 326 ((PDFWriterImpl*)pImplementation)->setLineColor( rColor ); 327 } 328 329 void PDFWriter::SetFillColor( const Color& rColor ) 330 { 331 ((PDFWriterImpl*)pImplementation)->setFillColor( rColor ); 332 } 333 334 void PDFWriter::SetClipRegion() 335 { 336 ((PDFWriterImpl*)pImplementation)->clearClipRegion(); 337 } 338 339 void PDFWriter::SetClipRegion( const basegfx::B2DPolyPolygon& rRegion ) 340 { 341 ((PDFWriterImpl*)pImplementation)->setClipRegion( rRegion ); 342 } 343 344 void PDFWriter::MoveClipRegion( long nHorzMove, long nVertMove ) 345 { 346 ((PDFWriterImpl*)pImplementation)->moveClipRegion( nHorzMove, nVertMove ); 347 } 348 349 void PDFWriter::IntersectClipRegion( const basegfx::B2DPolyPolygon& rRegion ) 350 { 351 ((PDFWriterImpl*)pImplementation)->intersectClipRegion( rRegion ); 352 } 353 354 void PDFWriter::IntersectClipRegion( const Rectangle& rRect ) 355 { 356 ((PDFWriterImpl*)pImplementation)->intersectClipRegion( rRect ); 357 } 358 359 void PDFWriter::SetAntialiasing( sal_uInt16 nMode ) 360 { 361 ((PDFWriterImpl*)pImplementation)->setAntiAlias( (sal_Int32)nMode ); 362 } 363 364 void PDFWriter::SetLayoutMode( sal_uLong nMode ) 365 { 366 ((PDFWriterImpl*)pImplementation)->setLayoutMode( (sal_Int32)nMode ); 367 } 368 369 void PDFWriter::SetDigitLanguage( LanguageType eLang ) 370 { 371 ((PDFWriterImpl*)pImplementation)->setDigitLanguage( eLang ); 372 } 373 374 void PDFWriter::SetTextColor( const Color& rColor ) 375 { 376 ((PDFWriterImpl*)pImplementation)->setTextColor( rColor ); 377 } 378 379 void PDFWriter::SetTextFillColor() 380 { 381 ((PDFWriterImpl*)pImplementation)->setTextFillColor(); 382 } 383 384 void PDFWriter::SetTextFillColor( const Color& rColor ) 385 { 386 ((PDFWriterImpl*)pImplementation)->setTextFillColor( rColor ); 387 } 388 389 void PDFWriter::SetTextLineColor() 390 { 391 ((PDFWriterImpl*)pImplementation)->setTextLineColor(); 392 } 393 394 void PDFWriter::SetTextLineColor( const Color& rColor ) 395 { 396 ((PDFWriterImpl*)pImplementation)->setTextLineColor( rColor ); 397 } 398 399 void PDFWriter::SetOverlineColor() 400 { 401 ((PDFWriterImpl*)pImplementation)->setOverlineColor(); 402 } 403 404 void PDFWriter::SetOverlineColor( const Color& rColor ) 405 { 406 ((PDFWriterImpl*)pImplementation)->setOverlineColor( rColor ); 407 } 408 409 void PDFWriter::SetTextAlign( ::TextAlign eAlign ) 410 { 411 ((PDFWriterImpl*)pImplementation)->setTextAlign( eAlign ); 412 } 413 414 void PDFWriter::DrawJPGBitmap( SvStream& rStreamData, bool bIsTrueColor, const Size& rSrcSizePixel, const Rectangle& rTargetArea, const Bitmap& rMask ) 415 { 416 ((PDFWriterImpl*)pImplementation)->drawJPGBitmap( rStreamData, bIsTrueColor, rSrcSizePixel, rTargetArea, rMask ); 417 } 418 419 sal_Int32 PDFWriter::CreateLink( const Rectangle& rRect, sal_Int32 nPageNr ) 420 { 421 return ((PDFWriterImpl*)pImplementation)->createLink( rRect, nPageNr ); 422 } 423 sal_Int32 PDFWriter::RegisterDestReference( sal_Int32 nDestId, const Rectangle& rRect, sal_Int32 nPageNr, DestAreaType eType ) 424 { 425 return ((PDFWriterImpl*)pImplementation)->registerDestReference( nDestId, rRect, nPageNr, eType ); 426 } 427 //--->i56629 428 sal_Int32 PDFWriter::CreateNamedDest( const rtl::OUString& sDestName, const Rectangle& rRect, sal_Int32 nPageNr, PDFWriter::DestAreaType eType ) 429 { 430 return ((PDFWriterImpl*)pImplementation)->createNamedDest( sDestName, rRect, nPageNr, eType ); 431 } 432 //<--- 433 sal_Int32 PDFWriter::CreateDest( const Rectangle& rRect, sal_Int32 nPageNr, PDFWriter::DestAreaType eType ) 434 { 435 return ((PDFWriterImpl*)pImplementation)->createDest( rRect, nPageNr, eType ); 436 } 437 438 sal_Int32 PDFWriter::SetLinkDest( sal_Int32 nLinkId, sal_Int32 nDestId ) 439 { 440 return ((PDFWriterImpl*)pImplementation)->setLinkDest( nLinkId, nDestId ); 441 } 442 443 sal_Int32 PDFWriter::SetLinkURL( sal_Int32 nLinkId, const rtl::OUString& rURL ) 444 { 445 return ((PDFWriterImpl*)pImplementation)->setLinkURL( nLinkId, rURL ); 446 } 447 448 void PDFWriter::SetLinkPropertyID( sal_Int32 nLinkId, sal_Int32 nPropertyId ) 449 { 450 ((PDFWriterImpl*)pImplementation)->setLinkPropertyId( nLinkId, nPropertyId ); 451 } 452 453 sal_Int32 PDFWriter::CreateOutlineItem( sal_Int32 nParent, const rtl::OUString& rText, sal_Int32 nDestID ) 454 { 455 return ((PDFWriterImpl*)pImplementation)->createOutlineItem( nParent, rText, nDestID ); 456 } 457 458 sal_Int32 PDFWriter::SetOutlineItemParent( sal_Int32 nItem, sal_Int32 nNewParent ) 459 { 460 return ((PDFWriterImpl*)pImplementation)->setOutlineItemParent( nItem, nNewParent ); 461 } 462 463 sal_Int32 PDFWriter::SetOutlineItemText( sal_Int32 nItem, const rtl::OUString& rText ) 464 { 465 return ((PDFWriterImpl*)pImplementation)->setOutlineItemText( nItem, rText ); 466 } 467 468 sal_Int32 PDFWriter::SetOutlineItemDest( sal_Int32 nItem, sal_Int32 nDest ) 469 { 470 return ((PDFWriterImpl*)pImplementation)->setOutlineItemDest( nItem, nDest ); 471 } 472 473 void PDFWriter::CreateNote( const Rectangle& rRect, const PDFNote& rNote, sal_Int32 nPageNr ) 474 { 475 ((PDFWriterImpl*)pImplementation)->createNote( rRect, rNote, nPageNr ); 476 } 477 478 sal_Int32 PDFWriter::BeginStructureElement( PDFWriter::StructElement eType, const rtl::OUString& rAlias ) 479 { 480 return ((PDFWriterImpl*)pImplementation)->beginStructureElement( eType, rAlias ); 481 } 482 483 void PDFWriter::EndStructureElement() 484 { 485 ((PDFWriterImpl*)pImplementation)->endStructureElement(); 486 } 487 488 bool PDFWriter::SetCurrentStructureElement( sal_Int32 nID ) 489 { 490 return ((PDFWriterImpl*)pImplementation)->setCurrentStructureElement( nID ); 491 } 492 493 sal_Int32 PDFWriter::GetCurrentStructureElement() 494 { 495 return ((PDFWriterImpl*)pImplementation)->getCurrentStructureElement(); 496 } 497 498 bool PDFWriter::SetStructureAttribute( enum StructAttribute eAttr, enum StructAttributeValue eVal ) 499 { 500 return ((PDFWriterImpl*)pImplementation)->setStructureAttribute( eAttr, eVal ); 501 } 502 503 bool PDFWriter::SetStructureAttributeNumerical( enum StructAttribute eAttr, sal_Int32 nValue ) 504 { 505 return ((PDFWriterImpl*)pImplementation)->setStructureAttributeNumerical( eAttr, nValue ); 506 } 507 508 void PDFWriter::SetStructureBoundingBox( const Rectangle& rRect ) 509 { 510 ((PDFWriterImpl*)pImplementation)->setStructureBoundingBox( rRect ); 511 } 512 513 void PDFWriter::SetActualText( const String& rText ) 514 { 515 ((PDFWriterImpl*)pImplementation)->setActualText( rText ); 516 } 517 518 void PDFWriter::SetAlternateText( const String& rText ) 519 { 520 ((PDFWriterImpl*)pImplementation)->setAlternateText( rText ); 521 } 522 523 void PDFWriter::SetAutoAdvanceTime( sal_uInt32 nSeconds, sal_Int32 nPageNr ) 524 { 525 ((PDFWriterImpl*)pImplementation)->setAutoAdvanceTime( nSeconds, nPageNr ); 526 } 527 528 void PDFWriter::SetPageTransition( PDFWriter::PageTransition eType, sal_uInt32 nMilliSec, sal_Int32 nPageNr ) 529 { 530 ((PDFWriterImpl*)pImplementation)->setPageTransition( eType, nMilliSec, nPageNr ); 531 } 532 533 sal_Int32 PDFWriter::CreateControl( const PDFWriter::AnyWidget& rControl, sal_Int32 nPageNr ) 534 { 535 return ((PDFWriterImpl*)pImplementation)->createControl( rControl, nPageNr ); 536 } 537 538 PDFOutputStream::~PDFOutputStream() 539 { 540 } 541 542 void PDFWriter::AddStream( const String& rMimeType, PDFOutputStream* pStream, bool bCompress ) 543 { 544 ((PDFWriterImpl*)pImplementation)->addStream( rMimeType, pStream, bCompress ); 545 } 546 547 void PDFWriter::BeginPattern( const Rectangle& rCellRect ) 548 { 549 ((PDFWriterImpl*)pImplementation)->beginPattern( rCellRect ); 550 } 551 552 sal_Int32 PDFWriter::EndPattern( const SvtGraphicFill::Transform& rTransform ) 553 { 554 return ((PDFWriterImpl*)pImplementation)->endPattern( rTransform ); 555 } 556 557 void PDFWriter::DrawPolyPolygon( const PolyPolygon& rPolyPoly, sal_Int32 nPattern, bool bEOFill ) 558 { 559 ((PDFWriterImpl*)pImplementation)->drawPolyPolygon( rPolyPoly, nPattern, bEOFill ); 560 } 561 562 std::set< PDFWriter::ErrorCode > PDFWriter::GetErrors() 563 { 564 return ((PDFWriterImpl*)pImplementation)->getErrors(); 565 } 566 567 com::sun::star::uno::Reference< com::sun::star::beans::XMaterialHolder > 568 PDFWriter::InitEncryption( const rtl::OUString& i_rOwnerPassword, 569 const rtl::OUString& i_rUserPassword, 570 bool b128Bit 571 ) 572 { 573 return PDFWriterImpl::initEncryption( i_rOwnerPassword, i_rUserPassword, b128Bit ); 574 } 575 576 void PDFWriter::PlayMetafile( const GDIMetaFile& i_rMTF, const vcl::PDFWriter::PlayMetafileContext& i_rPlayContext, PDFExtOutDevData* i_pData ) 577 { 578 ((PDFWriterImpl*)pImplementation)->playMetafile( i_rMTF, i_pData, i_rPlayContext, NULL); 579 } 580 581