21 #include <osl/diagnose.h>
28 #include <rtl/tencinfo.h>
44 #define W_META_SETBKMODE 0x0102
45 #define W_META_SETROP2 0x0104
46 #define W_META_SETSTRETCHBLTMODE 0x0107
47 #define W_META_SETTEXTCOLOR 0x0209
48 #define W_META_SETWINDOWORG 0x020B
49 #define W_META_SETWINDOWEXT 0x020C
50 #define W_META_LINETO 0x0213
51 #define W_META_MOVETO 0x0214
52 #define W_META_INTERSECTCLIPRECT 0x0416
53 #define W_META_ARC 0x0817
54 #define W_META_ELLIPSE 0x0418
55 #define W_META_PIE 0x081A
56 #define W_META_RECTANGLE 0x041B
57 #define W_META_ROUNDRECT 0x061C
58 #define W_META_SAVEDC 0x001E
59 #define W_META_SETPIXEL 0x041F
60 #define W_META_TEXTOUT 0x0521
61 #define W_META_POLYGON 0x0324
62 #define W_META_POLYLINE 0x0325
63 #define W_META_ESCAPE 0x0626
64 #define W_META_RESTOREDC 0x0127
65 #define W_META_SELECTOBJECT 0x012D
66 #define W_META_SETTEXTALIGN 0x012E
67 #define W_META_CHORD 0x0830
68 #define W_META_EXTTEXTOUT 0x0a32
69 #define W_META_POLYPOLYGON 0x0538
70 #define W_META_STRETCHDIB 0x0f43
71 #define W_META_DELETEOBJECT 0x01f0
72 #define W_META_CREATEPENINDIRECT 0x02FA
73 #define W_META_CREATEFONTINDIRECT 0x02FB
74 #define W_META_CREATEBRUSHINDIRECT 0x02FC
76 #define W_TRANSPARENT 1
81 #define W_R2_COPYPEN 13
83 #define W_TA_NOUPDATECP 0x0000
84 #define W_TA_LEFT 0x0000
85 #define W_TA_RIGHT 0x0002
86 #define W_TA_TOP 0x0000
87 #define W_TA_BOTTOM 0x0008
88 #define W_TA_BASELINE 0x0018
89 #define W_TA_RTLREADING 0x0100
91 #define W_SRCCOPY 0x00CC0020L
92 #define W_SRCPAINT 0x00EE0086L
93 #define W_SRCAND 0x008800C6L
94 #define W_SRCINVERT 0x00660046L
95 #define W_DSTINVERT 0x00550009L
100 #define W_PS_DASHDOT 3
101 #define W_PS_DASHDOTDOT 4
104 #define W_LF_FACESIZE 32
106 #define W_ANSI_CHARSET 0
108 #define W_DEFAULT_PITCH 0x00
109 #define W_FIXED_PITCH 0x01
110 #define W_VARIABLE_PITCH 0x02
112 #define W_FF_DONTCARE 0x00
113 #define W_FF_ROMAN 0x10
114 #define W_FF_SWISS 0x20
115 #define W_FF_MODERN 0x30
116 #define W_FF_SCRIPT 0x40
117 #define W_FF_DECORATIVE 0x50
119 #define W_FW_DONTCARE 0
120 #define W_FW_THIN 100
121 #define W_FW_LIGHT 300
122 #define W_FW_NORMAL 400
123 #define W_FW_MEDIUM 500
124 #define W_FW_SEMIBOLD 600
125 #define W_FW_BOLD 700
126 #define W_FW_ULTRALIGHT 200
127 #define W_FW_ULTRABOLD 800
128 #define W_FW_BLACK 900
131 #define W_BS_HOLLOW 1
133 #define W_MFCOMMENT 15
135 #define PRIVATE_ESCAPE_UNICODE 2
142 , nMetafileHeaderPos(0)
147 , pAttrStack(nullptr)
156 , nNumberOfActions(0)
157 , nNumberOfBitmaps(0)
160 , nActBitmapPercent(0)
183 if( nPercent <= 100 )
190 size_t nAction, nActionCount;
194 for ( nAction=0; nAction < nActionCount; nAction++ )
268 if ((nSize & 1)!=0) {
310 sal_uInt16 nWeight,
i;
336 rtl_TextEncoding eFontNameEncoding = rFont.
GetCharSet();
337 sal_uInt8 nCharSet = rtl_getBestWindowsCharsetFromTextEncoding( eFontNameEncoding );
338 if ( eFontNameEncoding == RTL_TEXTENCODING_SYMBOL )
339 eFontNameEncoding = RTL_TEXTENCODING_MS_1252;
364 char nChar = ( i < aFontName.getLength() ) ? aFontName[i] : 0;
374 switch( rLineInfo.GetStyle() )
378 if ( rLineInfo.GetDotCount() )
380 if ( !rLineInfo.GetDashCount() )
384 if ( rLineInfo.GetDotCount() == 1 )
421 sal_uInt32 nTmp = OSL_SWAPDWORD( nEsc );
422 sal_uInt32 nCheckSum = rtl_crc32( 0, &nTmp, 4 );
424 sal_uInt32 nCheckSum = rtl_crc32( 0, &nEsc, 4 );
427 nCheckSum = rtl_crc32( nCheckSum, pData, nLen );
446 bool bEscapeUsed =
false;
448 sal_uInt32
i, nStringLen = rUniStr.getLength();
457 OUString aUniStr2(OStringToOUString(aByteStr, aTextEncodingOrg));
458 const sal_Unicode* pConversion = aUniStr2.getStr();
459 for ( i = 0; i < nStringLen; i++ )
461 if ( *pBuf++ != *pConversion++ )
465 if ( i != nStringLen )
467 pBuf = rUniStr.getStr();
470 if (aTextEncoding == RTL_TEXTENCODING_DONTKNOW) {
471 aTextEncoding = aTextEncodingOrg;
473 for ( i = 1; i < nStringLen; i++)
475 if (aTextEncoding != aTextEncodingOrg)
479 if (aTextEncoding == RTL_TEXTENCODING_DONTKNOW) {
480 aTextEncoding = aTextEncodingOrg;
485 aUniStr2 = OStringToOUString(aByteStr, aTextEncoding);
486 pConversion = aUniStr2.getStr();
487 for ( i = 0; i < nStringLen; i++ )
489 if ( *pBuf++ != *pConversion++ )
508 std::vector<tools::PolyPolygon> aPolyPolyVec;
511 sal_uInt32 nDXCount = pDXAry ? nStringLen : 0;
512 sal_uInt32 nSkipActions = aPolyPolyVec.size();
513 sal_Int32 nStrmLen = 8 +
514 +
sizeof( nStringLen ) + ( nStringLen * 2 )
515 +
sizeof( nDXCount ) + ( nDXCount * 4 )
516 +
sizeof( nSkipActions );
521 .WriteInt32( aPt.Y() )
522 .WriteUInt32( nStringLen );
523 for ( i = 0; i < nStringLen; i++ )
526 for ( i = 0; i < nDXCount; i++ )
531 for (
const auto& rPolyPoly : aPolyPolyVec )
534 aPolyPoly.
Move( rPoint.X(), rPoint.Y() );
548 const OUString& rString,
551 sal_Int32 nOriginalTextLen = rString.getLength();
553 if ( (nOriginalTextLen <= 1) || (pDXAry ==
nullptr) )
564 const OString& rByteString,
const tools::Long* pDXAry )
568 sal_uInt16 nNewTextLen =
static_cast<sal_uInt16
>(rByteString.getLength());
571 if ( nNewTextLen & 1 )
574 sal_Int32 nOriginalTextLen = rString.getLength();
575 std::unique_ptr<sal_Int16[]> pConvertedDXAry(
new sal_Int16[ nOriginalTextLen ]);
577 pConvertedDXAry[ j++ ] =
static_cast<sal_Int16
>(
ScaleWidth( pDXAry[ 0 ] ));
578 for (sal_Int32
i = 1;
i < ( nOriginalTextLen - 1 ); ++
i)
579 pConvertedDXAry[ j++ ] = static_cast<sal_Int16>(
ScaleWidth( pDXAry[
i ] - pDXAry[
i - 1 ] ));
580 pConvertedDXAry[ j ] =
static_cast<sal_Int16
>(
ScaleWidth( pDXAry[ nOriginalTextLen - 2 ] / ( nOriginalTextLen - 1 ) ));
582 for (sal_Int32
i = 0;
i < nOriginalTextLen; ++
i)
584 sal_Int16 nDx = pConvertedDXAry[
i ];
586 if ( nOriginalTextLen < nNewTextLen )
590 j = aTemp.getLength();
595 pConvertedDXAry.reset();
626 const sal_uInt16 nSize = aSimplePoly.
GetSize();
629 for (sal_uInt16
i=0;
i<nSize; ++
i)
640 const sal_uInt16 nSize = aSimplePoly.
GetSize();
643 for (sal_uInt16
i=0;
i<nSize; ++
i)
652 nCount=rPolyPoly.
Count();
654 for ( i = 0; i < nCount; i++ )
656 if ( aSimplePolyPoly[ i ].HasFlags() )
660 aSimplePolyPoly[ i ] = aSimplePoly;
666 for (i=0; i<nCount; i++) {
741 switch (eFontAlign) {
746 nAlign|=eHorTextAlign;
772 const Bitmap & rBitmap, sal_uInt32 nROP )
838 sal_Int32 nLen = rString.getLength();
871 sal_uInt16 nOldHandle;
885 sal_uInt16 nOldHandle;
899 sal_uInt16 nOldHandle;
954 if ( ( xFontCharMap->
GetFirstChar() & 0xff00 ) == 0xf000 )
967 if(!rLinePolygon.
count())
973 rInfo.applyToB2DPolyPolygon(aLinePolyPolygon, aFillPolyPolygon);
975 if(aLinePolyPolygon.
count())
980 for(
auto const& rB2DPolygon : aLinePolyPolygon)
986 if(!aFillPolyPolygon.
count())
996 for(
auto const& rB2DPolygon : aFillPolyPolygon)
1015 for(
size_t nA = 0; nA < nACount; nA++ )
1023 const MetaPixelAction* pA =
static_cast<const MetaPixelAction *
>(pMA);
1073 const MetaRoundRectAction* pA =
static_cast<const MetaRoundRectAction*
>(pMA);
1082 const MetaEllipseAction* pA =
static_cast<const MetaEllipseAction*
>(pMA);
1091 const MetaArcAction* pA =
static_cast<const MetaArcAction*
>(pMA);
1094 WMFRecord_Arc( pA->GetRect(),pA->GetStartPoint(),pA->GetEndPoint() );
1100 const MetaPieAction* pA =
static_cast<const MetaPieAction*
>(pMA);
1103 WMFRecord_Pie( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint() );
1109 const MetaChordAction* pA =
static_cast<const MetaChordAction*
>(pMA);
1112 WMFRecord_Chord( pA->GetRect(), pA->GetStartPoint(), pA->GetEndPoint() );
1118 const MetaPolyLineAction* pA =
static_cast<const MetaPolyLineAction*
>(pMA);
1123 if(pA->GetLineInfo().IsDefault())
1140 const MetaPolygonAction* pA =
static_cast<const MetaPolygonAction*
>(pMA);
1149 const MetaPolyPolygonAction* pA =
static_cast<const MetaPolyPolygonAction*
>(pMA);
1159 OUString aTemp( pA->
GetText() );
1182 const MetaTextArrayAction* pA =
static_cast<const MetaTextArrayAction*
>(pMA);
1184 OUString aTemp = pA->GetText().copy( pA->GetIndex(), std::min<sal_Int32>(pA->GetText().getLength() - pA->GetIndex(), pA->GetLen()) );
1198 const sal_Int32 nLen = aTemp.getLength();
1199 std::unique_ptr<tools::Long[]> pDXAry(nLen ?
new tools::Long[ nLen ] :
nullptr);
1201 if (nLen && nNormSize == 0)
1203 OSL_FAIL(
"Impossible div by 0 action: MetaStretchTextAction!");
1207 for ( sal_Int32
i = 0;
i < ( nLen - 1 );
i++ )
1208 pDXAry[
i ] = pDXAry[
i ] * static_cast<sal_Int32>(pA->
GetWidth()) / nNormSize;
1209 if ( ( nLen <= 1 ) || (
static_cast<sal_Int32
>(pA->
GetWidth()) == nNormSize ) )
1235 const MetaBmpScalePartAction* pA =
static_cast<const MetaBmpScalePartAction*
>(pMA);
1236 Bitmap aTmp( pA->GetBitmap() );
1281 const MetaBmpExScalePartAction* pA =
static_cast<const MetaBmpExScalePartAction*
>(pMA);
1282 BitmapEx aBmpEx( pA->GetBitmapEx() );
1284 Bitmap aBmp( aBmpEx.GetBitmap() );
1285 Bitmap aMsk( aBmpEx.GetMask() );
1321 const MetaWallpaperAction* pA =
static_cast<const MetaWallpaperAction*
>(pMA);
1322 const Color& rColor = pA->GetWallpaper().GetColor();
1338 const MetaISectRectClipRegionAction* pA =
static_cast<const MetaISectRectClipRegionAction*
>(pMA);
1367 const MetaTextColorAction* pA =
static_cast<const MetaTextColorAction*
>(pMA);
1374 const MetaTextFillColorAction* pA =
static_cast<const MetaTextFillColorAction*
>(pMA);
1375 if( pA->IsSetting() )
1384 const MetaTextAlignAction* pA =
static_cast<const MetaTextAlignAction*
>(pMA);
1391 const MetaMapModeAction* pA =
static_cast<const MetaMapModeAction*
>(pMA);
1395 if( pA->GetMapMode().GetMapUnit() == MapUnit::MapRelative )
1397 const MapMode& aMM = pA->GetMapMode();
1402 BigInt aX( aOrigin.X() );
1404 if( aOrigin.X() >= 0 )
1415 aOrigin.setX( static_cast<tools::Long>(aX) + aMM.
GetOrigin().X() );
1416 BigInt aY( aOrigin.Y() );
1418 if( aOrigin.Y() >= 0 )
1429 aOrigin.setY( static_cast<tools::Long>(aY) + aMM.
GetOrigin().Y() );
1445 const MetaFontAction* pA =
static_cast<const MetaFontAction*
>(pMA);
1462 const MetaPushAction* pA =
static_cast<const MetaPushAction*
>(pMA);
1465 pAt->
nFlags = pA->GetFlags();
1527 size_t nCount = aGDIMetaFile.GetActionSize();
1528 for (
size_t i = 0;
i < nCount;
i++ )
1530 const MetaAction* pMetaAct = aGDIMetaFile.GetAction(
i );
1543 const MetaRasterOpAction* pA =
static_cast<const MetaRasterOpAction*
>(pMA);
1561 Point aSrcPt( aTmpMtf.GetPrefMapMode().GetOrigin() );
1562 const Size aSrcSize( aTmpMtf.GetPrefSize() );
1565 const double fScaleX = aSrcSize.
Width() ?
static_cast<double>(aDestSize.Width()) / aSrcSize.Width() : 1.0;
1566 const double fScaleY = aSrcSize.Height() ?
static_cast<double>(aDestSize.Height()) / aSrcSize.Height() : 1.0;
1572 if( fScaleX != 1.0 || fScaleY != 1.0 )
1574 aTmpMtf.Scale( fScaleX, fScaleY );
1575 aSrcPt.setX(
FRound( aSrcPt.X() * fScaleX ) );
1576 aSrcPt.setY(
FRound( aSrcPt.Y() * fScaleY ) );
1579 nMoveX = aDestPt.X() - aSrcPt.X();
1580 nMoveY = aDestPt.Y() - aSrcPt.Y();
1582 if( nMoveX || nMoveY )
1583 aTmpMtf.Move( nMoveX, nMoveY );
1630 sal_uInt16 nCheckSum,
nValue;
1632 sal_uInt16 nUnitsPerInch =
static_cast<sal_uInt16
>( ( aSize.
Width() + aSize.
Height() ) >> 1 );
1661 sal_uInt32 nFileSize;
1665 if ((nFileSize&1)!=0) {
1697 pWMF=&rTargetStream;
1798 const Size& rPrefSize)
1801 sal_uInt16 nDivisor = 1;
1805 while( nDivisor <= 64 && (aSize.
Width() > 32767 || aSize.
Height() > 32767) )
1829 sal_uInt64
const nTotalSize = aStream.
Tell();
1833 sal_uInt32 nRemainingSize =
static_cast< sal_uInt32
>( nTotalSize );
1834 sal_uInt32 nRecCounts = ( (nTotalSize - 1) / 0x2000 ) + 1;
1835 sal_uInt16 nCheckSum = 0, nWord;
1837 sal_uInt32
nPos = 0;
1839 while( nPos + 1 < nTotalSize )
1846 nCheckSum =
static_cast< sal_uInt16
>( nCheckSum * -1 );
1849 while( nRemainingSize > 0 )
1851 sal_uInt32 nCurSize;
1852 if( nRemainingSize > 0x2000 )
1855 nRemainingSize -= 0x2000;
1859 nCurSize = nRemainingSize;
1874 sal_uInt32 nTotalSize, sal_uInt32 nRecCounts, sal_uInt16 nCheckSum )
const Fraction & GetScaleX() const
void WMFRecord_Rectangle(const tools::Rectangle &rRect)
void CreateSelectDeletePen(const Color &rColor, const LineInfo &rLineInfo)
void SetFillColor(const Color &)
bool GetFontCharMap(FontCharMapRef &rxFontCharMap) const
void WMFRecord_SetROP2(RasterOp eROP)
void append(const basegfx::B2DPoint &rPoint, sal_uInt32 nCount)
bool WriteWMF(const GDIMetaFile &rMTF, SvStream &rTargetStream, FilterConfigItem const *pFilterConfigItem, bool bPlaceable)
void WriteRecordHeader(sal_uInt32 nSizeWords, sal_uInt16 nType)
const OUString & GetFamilyName() const
void WMFRecord_SetBkMode(bool bTransparent)
SvStream & WriteUInt16(sal_uInt16 nUInt16)
void setWidth(tools::Long nWidth)
void WMFRecord_SetStretchBltMode()
#define W_META_CREATEPENINDIRECT
SvStream & WriteInt32(sal_Int32 nInt32)
SvStream & ReadUInt16(sal_uInt16 &rUInt16)
Point LogicToLogic(const Point &rPtSource, const MapMode *pMapModeSource, const MapMode *pMapModeDest) const
void WMFRecord_ExtTextOut(const Point &rPoint, const OUString &rString, const tools::Long *pDXAry)
void WMFRecord_SelectObject(sal_uInt16 nObjectHandle)
#define W_META_EXTTEXTOUT
void WMFRecord_PolyPolygon(const tools::PolyPolygon &rPolyPoly)
void WMFRecord_Arc(const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
#define W_META_SELECTOBJECT
sal_uInt64 Seek(sal_uInt64 nPos)
sal_uInt16 eSrcHorTextAlign
sal_uLong nNumberOfActions
void SetCharSet(rtl_TextEncoding)
const OUString & GetText() const
Size GetSizePixel() const
TOOLS_DLLPUBLIC rtl_TextEncoding getBestMSEncodingByChar(sal_Unicode c)
void WriteHeader(bool bPlaceable)
sal_uLong nMetafileHeaderPos
sal_uInt32 nMaxRecordSize
sal_uInt64 SeekRel(sal_Int64 nPos)
FontFamily GetFamilyType()
FontAlign GetAlignment() const
void WriteSize(const Size &rSize)
#define W_META_DELETEOBJECT
sal_uLong nNumberOfBitmaps
constexpr::Color COL_TRANSPARENT(0xFF, 0xFF, 0xFF, 0xFF)
#define W_META_SETWINDOWEXT
const OUString & GetText() const
const Fraction & GetScaleY() const
void WMFRecord_MoveTo(const Point &rPoint)
sal_uLong nWrittenBitmaps
void WMFRecord_CreatePenIndirect(const Color &rColor, const LineInfo &rLineInfo)
sal_uInt16 nDstBrushHandle
SvStream & WriteUInt32(sal_uInt32 nUInt32)
void WMFRecord_SetTextColor(const Color &rColor)
sal_uInt16 CalcSaveTargetMapMode(MapMode &rMapMode, const Size &rPrefSize)
void WriteRectangle(const tools::Rectangle &rRect)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
void WriteRecords(const GDIMetaFile &rMTF)
sal_uInt8 GetBlue() const
bool GetTextOutlines(PolyPolyVector &, const OUString &rStr, sal_Int32 nBase=0, sal_Int32 nIndex=0, sal_Int32 nLen=-1, sal_uLong nLayoutWidth=0, const tools::Long *pDXArray=nullptr) const
void TrueExtTextOut(const Point &rPoint, const OUString &rString, const OString &rByteString, const tools::Long *pDXAry)
VclPtr< VirtualDevice > pVirDev
rtl_TextEncoding GetExtendedTextEncoding(rtl_TextEncoding eEncoding)
sal_uInt16 eDstHorTextAlign
struct WMFWriterAttrStackMember * pSucc
void SetAlignment(FontAlign)
#define PRIVATE_ESCAPE_UNICODE
sal_UCS4 GetFirstChar() const
Get the first character in the font character map.
UNDERLYING_TYPE get() const
void SetScaleX(const Fraction &rScaleX)
WMFWriterAttrStackMember * pAttrStack
void WriteEMFRecord(SvMemoryStream &rStream, sal_uInt32 nCurSize, sal_uInt32 nRemainingSize, sal_uInt32 nTotalSize, sal_uInt32 nRecCounts, sal_uInt16 nCheckSum)
#define W_META_STRETCHDIB
#define W_META_SETTEXTCOLOR
const Point & GetPoint() const
void WMFRecord_SetWindowOrg(const Point &rPoint)
tools::Long FRound(double fVal)
#define W_META_CREATEBRUSHINDIRECT
sal_uLong nWrittenActions
void WMFRecord_CreateBrushIndirect(const Color &rColor)
void SetOrigin(const Point &rOrigin)
sal_uInt32 GetWidth() const
sal_Int32 ScaleWidth(sal_Int32 nDX)
void WMFRecord_IntersectClipRect(const tools::Rectangle &rRect)
void WMFRecord_Ellipse(const tools::Rectangle &rRect)
#define W_META_SETTEXTALIGN
tools::Long Width() const
std::size_t WriteBytes(const void *pData, std::size_t nSize)
bool WMFRecord_Escape_Unicode(const Point &rPoint, const OUString &rStr, const tools::Long *pDXAry)
void SetScaleY(const Fraction &rScaleY)
bool WriteEMF(const GDIMetaFile &rMtf)
const Size & GetFontSize() const
const OUString & GetText() const
void AddGradientActions(const tools::Rectangle &rRect, const Gradient &rGradient, GDIMetaFile &rMtf)
FontStrikeout GetStrikeout() const
std::size_t write_uInt16_lenPrefixed_uInt8s_FromOString(SvStream &rStrm, const OString &rStr)
#define W_META_INTERSECTCLIPRECT
void SetLineAndFillAttr()
sal_uLong nActBitmapPercent
void SetColor(const Color &)
#define W_META_SETWINDOWORG
Bitmap GetBitmap(Color aTransparentReplaceColor) const
Point LogicToPixel(const Point &rLogicPt) const
void TrueTextOut(const Point &rPoint, const OString &rString)
sal_uInt16 nDstFontHandle
const Point & GetPoint() const
sal_uInt8 GetGreen() const
#define W_META_SETSTRETCHBLTMODE
void UpdateRecordHeader()
void WMFRecord_SetTextAlign(FontAlign eFontAlign, sal_uInt16 eHorTextAlign)
const Color & GetColor() const
vcl::Region aDstClipRegion
void WMFRecord_CreateFontIndirect(const vcl::Font &rFont)
void WMFRecord_StretchDIB(const Point &rPoint, const Size &rSize, const Bitmap &rBitmap, sal_uInt32 nROP=0)
sal_Int32 GetDenominator() const
#define W_META_POLYPOLYGON
void WMFRecord_DeleteObject(sal_uInt16 nObjectHandle)
void WMFRecord_PolyLine(const tools::Polygon &rPoly)
void WMFRecord_TextOut(const Point &rPoint, std::u16string_view rString)
void SetFont(const vcl::Font &rNewFont)
void WMFRecord_RestoreDC()
void SetEndian(SvStreamEndian SvStreamEndian)
#define W_META_CREATEFONTINDIRECT
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
vcl::Region aSrcClipRegion
void HandleLineInfoPolyPolygons(const LineInfo &rInfo, const basegfx::B2DPolygon &rLinePolygon)
SvStream & WriteUChar(unsigned char nChar)
void WMFRecord_Escape(sal_uInt32 nEsc, sal_uInt32 nLen, const sal_Int8 *pData)
void WriteHeightWidth(const Size &rSize)
SvStream & WriteInt16(sal_Int16 nInt16)
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
void WMFRecord_Chord(const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)
std::size_t write_uInt8s_FromOString(SvStream &rStrm, const OString &rStr, std::size_t nUnits)
tools::Long Height() const
void WMFRecord_SetPixel(const Point &rPoint, const Color &rColor)
Degree10 GetOrientation() const
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
sal_Int32 GetNumerator() const
void WritePointXY(const Point &rPoint)
void CountActionsAndBitmaps(const GDIMetaFile &rMTF)
void AddHatchActions(const tools::PolyPolygon &rPolyPoly, const Hatch &rHatch, GDIMetaFile &rMtf)
const Point & GetOrigin() const
SvStream & WriteChar(char nChar)
css::uno::Reference< css::task::XStatusIndicator > GetStatusIndicator() const
bool bHandleAllocated[MAXOBJECTHANDLES]
void WriteEmbeddedEMF(const GDIMetaFile &rMTF)
void setHeight(tools::Long nHeight)
FontLineStyle GetUnderline() const
void WMFRecord_Polygon(const tools::Polygon &rPoly)
void FreeHandle(sal_uInt16 nObjectHandle)
css::uno::Reference< css::task::XStatusIndicator > xStatusIndicator
void WMFRecord_LineTo(const Point &rPoint)
void CreateSelectDeleteFont(const vcl::Font &rFont)
bool IsStarSymbol(const OUString &rFontName)
bool Replace(const Bitmap &rMask, const Color &rReplaceColor)
Replace all pixel where the given mask is on with the specified color.
void WriteColor(const Color &rColor)
void WMFRecord_SetWindowExt(const Size &rSize)
void WMFRecord_RoundRect(const tools::Rectangle &rRect, tools::Long nHorzRound, tools::Long nVertRound)
tools::Long GetTextArray(const OUString &rStr, tools::Long *pDXAry, sal_Int32 nIndex=0, sal_Int32 nLen=-1, vcl::TextLayoutCache const *=nullptr, SalLayoutGlyphs const *const pLayoutCache=nullptr) const
bool Crop(const tools::Rectangle &rRectPixel)
Crop the bitmap.
const tools::Rectangle & GetRect() const
sal_Int32 GetIndex() const
void CreateSelectDeleteBrush(const Color &rColor)
sal_Int32 GetIndex() const
rtl_TextEncoding GetCharSet() const
void WritePointYX(const Point &rPoint)
void WMFRecord_Pie(const tools::Rectangle &rRect, const Point &rStartPt, const Point &rEndPt)