45 #include <com/sun/star/beans/XPropertySet.hpp>
46 #include <com/sun/star/configuration/theDefaultProvider.hpp>
47 #include <com/sun/star/container/XNameAccess.hpp>
48 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
49 #include <com/sun/star/uno/Sequence.h>
57 PaperInfo aInfo(nWidth100thMM, nHeight100thMM);
81 rData.SetPaperHeight( aInfo.getHeight() );
93 PrinterOptions::PrinterOptions() :
94 mbReduceTransparency( false ),
96 mbReduceGradients( false ),
98 mnReducedGradientStepCount( 64 ),
99 mbReduceBitmaps( false ),
101 mnReducedBitmapResolution( 200 ),
102 mbReducedBitmapsIncludeTransparency( true ),
103 mbConvertToGreyscales( false ),
104 mbPDFAsStandardPrintJobFormat( false )
108 void PrinterOptions::ReadFromConfig(
bool i_bFile )
110 bool bSuccess =
false;
112 PrinterOptions aOldValues( *
this );
115 css::uno::Reference< css::lang::XMultiServiceFactory > xConfigProvider;
116 css::uno::Reference< css::container::XNameAccess > xConfigAccess;
124 xConfigProvider = css::configuration::theDefaultProvider::get( xContext );
126 css::uno::Sequence< css::uno::Any > aArgs(1);
127 css::beans::PropertyValue aVal;
128 aVal.Name =
"nodepath";
130 aVal.Value <<= OUString(
"/org.openoffice.Office.Common/Print/Option/File" );
132 aVal.Value <<= OUString(
"/org.openoffice.Office.Common/Print/Option/Printer" );
133 aArgs.getArray()[0] <<= aVal;
135 xConfigProvider->createInstanceWithArguments(
136 "com.sun.star.configuration.ConfigurationAccess", aArgs ),
137 css::uno::UNO_QUERY );
138 if( xConfigAccess.is() )
140 css::uno::Reference< css::beans::XPropertySet > xSet( xConfigAccess, css::uno::UNO_QUERY );
145 if( xSet->getPropertyValue(
"ReduceTransparency") >>= bValue )
146 SetReduceTransparency( bValue );
147 if( xSet->getPropertyValue(
"ReducedTransparencyMode") >>= nValue )
148 SetReducedTransparencyMode( static_cast<PrinterTransparencyMode>(nValue) );
149 if( xSet->getPropertyValue(
"ReduceGradients") >>= bValue )
150 SetReduceGradients( bValue );
151 if( xSet->getPropertyValue(
"ReducedGradientMode") >>= nValue )
152 SetReducedGradientMode( static_cast<PrinterGradientMode>(nValue) );
153 if( xSet->getPropertyValue(
"ReducedGradientStepCount") >>= nValue )
154 SetReducedGradientStepCount( static_cast<sal_uInt16>(nValue) );
155 if( xSet->getPropertyValue(
"ReduceBitmaps") >>= bValue )
156 SetReduceBitmaps( bValue );
157 if( xSet->getPropertyValue(
"ReducedBitmapMode") >>= nValue )
158 SetReducedBitmapMode( static_cast<PrinterBitmapMode>(nValue) );
159 if( xSet->getPropertyValue(
"ReducedBitmapResolution") >>= nValue )
160 SetReducedBitmapResolution( static_cast<sal_uInt16>(nValue) );
161 if( xSet->getPropertyValue(
"ReducedBitmapIncludesTransparency") >>= bValue )
162 SetReducedBitmapIncludesTransparency( bValue );
163 if( xSet->getPropertyValue(
"ConvertToGreyscales") >>= bValue )
164 SetConvertToGreyscales( bValue );
165 if( xSet->getPropertyValue(
"PDFAsStandardPrintJobFormat") >>= bValue )
166 SetPDFAsStandardPrintJobFormat( bValue );
172 catch(
const css::uno::Exception& )
176 catch(
const css::lang::WrappedTargetException& )
185 const Point& rDestPt,
const Size& rDestSize,
186 const Point& rSrcPtPixel,
const Size& rSrcSizePixel )
197 Bitmap aPaint( rBmp ), aMask( rMask );
204 if( aDestSz.
Width() < 0 )
207 aDestPt.AdjustX( -( aDestSz.
Width() - 1 ) );
212 if( aDestSz.
Height() < 0 )
215 aDestPt.AdjustY( -( aDestSz.
Height() - 1 ) );
222 aPaint.Crop( aSrcRect );
223 aMask.
Crop( aSrcRect );
229 aPaint.Mirror( nMirrFlags );
230 aMask.
Mirror( nMirrFlags );
243 std::unique_ptr<tools::Long[]> pMapX(
new tools::Long[ nSrcWidth + 1 ]);
244 std::unique_ptr<tools::Long[]> pMapY(
new tools::Long[ nSrcHeight + 1 ]);
245 const bool bOldMap =
mbMap;
250 for( nX = 0; nX <= nSrcWidth; nX++ )
251 pMapX[ nX ] = aDestPt.X() +
FRound( static_cast<double>(aDestSz.
Width()) * nX / nSrcWidth );
253 for( nY = 0; nY <= nSrcHeight; nY++ )
254 pMapY[ nY ] = aDestPt.Y() +
FRound( static_cast<double>(aDestSz.
Height()) * nY / nSrcHeight );
261 for (
auto const&
rectangle : aRectangles)
264 const Size aMapSz( pMapX[
rectangle.Right() + 1] - aMapPt.X(),
265 pMapY[
rectangle.Bottom() + 1] - aMapPt.Y());
269 DrawBitmap(aMapPt, aMapSz,
Point(), aBandBmp.GetSizePixel(), aBandBmp);
296 const Point& rSrcPtPixel,
const Size& rSrcSizePixel,
306 DrawBitmap( rDestPt, rDestSize, rSrcPtPixel, rSrcSizePixel, aBmp );
317 sal_uInt16 nTransparencePercent )
338 const sal_uInt16 nTrans = ( nTransparencePercent < 13 ) ? 0 :
339 ( nTransparencePercent < 38 ) ? 25 :
340 ( nTransparencePercent < 63 ) ? 50 :
341 ( nTransparencePercent < 88 ) ? 75 : 100;
345 case 25: nMove = nBaseExtent * 3;
break;
346 case 50: nMove = nBaseExtent * 4;
break;
347 case 75: nMove = nBaseExtent * 6;
break;
350 case 100: nMove = nBaseExtent * 8;
break;
353 default: nMove = 0;
break;
359 const bool bOldMap =
mbMap;
365 while( aRect.
Top() <= aPolyRect.
Bottom() )
368 aRect.
Move( 0, nMove );
372 while( aRect.
Left() <= aPolyRect.
Right() )
375 aRect.
Move( nMove, 0 );
394 const Point& ,
const Size& )
396 SAL_WARN(
"vcl.gdi",
"Don't use OutputDevice::DrawOutDev(...) with printer devices!" );
400 const Point& ,
const Size& ,
403 SAL_WARN(
"vcl.gdi",
"Don't use OutputDevice::DrawOutDev(...) with printer devices!" );
407 const Point& ,
const Size& ,
410 SAL_WARN(
"vcl.gdi",
"Don't use OutputDevice::CopyArea(...) with printer devices!" );
447 std::unordered_map< OUString, sal_Int32 >::iterator it =
468 std::unordered_map<OUString,sal_Int32>::iterator it =
481 static const char* pEnv = getenv(
"SAL_DISABLE_PRINTERLIST" );
482 if( !pEnv || !*pEnv )
532 static const char* pEnv = getenv(
"SAL_DISABLE_DEFAULTPRINTER" );
533 if( !pEnv || !*pEnv )
780 const Point& rDestPt,
const Size& rDestSize,
781 const Point& rSrcPtPixel,
const Size& rSrcSizePixel )
799 if( aDestSz.
Width() < 0 )
802 aDestPt.AdjustX( -( aDestSz.
Width() - 1 ) );
807 if( aDestSz.
Height() < 0 )
810 aDestPt.AdjustY( -( aDestSz.
Height() - 1 ) );
816 aMask.
Crop( aSrcRect );
820 aMask.
Mirror( nMirrFlags );
825 std::unique_ptr<tools::Long[]> pMapX(
new tools::Long[ nSrcWidth + 1 ] );
826 std::unique_ptr<tools::Long[]> pMapY(
new tools::Long[ nSrcHeight + 1 ] );
828 const bool bOldMap =
mbMap;
839 for( nX = 0; nX <= nSrcWidth; nX++ )
840 pMapX[ nX ] = aDestPt.X() +
FRound( static_cast<double>(aDestSz.
Width()) * nX / nSrcWidth );
842 for( nY = 0; nY <= nSrcHeight; nY++ )
843 pMapY[ nY ] = aDestPt.Y() +
FRound( static_cast<double>(aDestSz.
Height()) * nY / nSrcHeight );
850 for (
auto const&
rectangle : aRectangles)
854 pMapX[
rectangle.Right() + 1] - aMapPt.X(),
855 pMapY[
rectangle.Bottom() + 1] - aMapPt.Y());
866 const OUString* pDriver )
883 if( rQueueInfo.
mpSalQueueInfo->maPrinterName.equalsIgnoreAsciiCase( rPrinterName ) )
952 , maJobSetup(rJobSetup)
956 OUString aDriver = rConstData.
GetDriver();
1041 if (!aBrdSize.
Width())
1332 for (
int i = 0;
i < nPaperCount;
i++ )
1336 if ( aInfo.sloppyEqual(rPaperInfo) )
1339 ImplGetPaperFormat( rPaperInfo.
getWidth(),
1350 nLandscapeAngle != 0 &&
1356 PaperInfo aRotatedInfo(nRotatedWidth, nRotatedHeight);
1358 for (
int i = 0;
i < nPaperCount;
i++ )
1365 ImplGetPaperFormat( rPaperInfo.
getWidth(),
1429 const Paper aPaper = ImplGetPaperFormat(aPageSize.
Width(), aPageSize.
Height());
1484 static const int PaperIndex[] =
1504 std::unordered_map<int,OUString>::const_iterator it = pSVData->
maPaperNames.find( static_cast<int>(ePaper) );
1505 return (it != pSVData->
maPaperNames.end()) ? it->second : OUString();
1511 return ImplGetEmptyPaper();
1515 return ImplGetEmptyPaper();
1682 bool bChanged = pPrnList->
m_aQueueInfos.size() != pNewList->m_aQueueInfos.size();
1683 for( decltype(pPrnList->
m_aQueueInfos)::size_type
i = 0; ! bChanged && i < pPrnList->m_aQueueInfos.size();
i++ )
1735 SAL_WARN(
"vcl.gdi",
"GetBitmap(): This should never be called on by a Printer instance");
1746 aInfo.LeftInset = aOffset.X();
1747 aInfo.TopInset = aOffset.Y();
1748 aInfo.RightInset = aDevSz.
Width() - aOutSz.
Width() - aOffset.X();
1749 aInfo.BottomInset = aDevSz.
Height() - aOutSz.
Height() - aOffset.Y();
1750 aInfo.Capabilities = 0;
bool DrawTransformBitmapExDirect(const basegfx::B2DHomMatrix &aFullTransform, const BitmapEx &rBitmapEx, double fAlpha=1.0) override
Transform and draw a bitmap directly.
void SetPrinterSetupMode(PrinterSetupMode eMode)
virtual void ClipAndDrawGradientMetafile(const Gradient &rGradient, const tools::PolyPolygon &rPolyPoly) override
VclPtr< OutputDevice > mpNextGraphics
Next output device in list.
virtual SalGraphics * AcquireGraphics()=0
virtual void ImplReleaseFonts() override
sal_uInt16 GetPaperBinCount() const
const OUString & GetName() const
static void ImplInitPrnQueueList()
SalGraphics * mpJobGraphics
virtual int GetLandscapeAngle(const ImplJobSetup *pSetupData)=0
bool IsDisplayPrinter() const
void setWidth(tools::Long nWidth)
bool SetPaperBin(sal_uInt16 nPaperBin)
static void NotifyAllWindows(DataChangedEvent &rDCEvt)
Notify all windows that the application has changed data.
sal_uInt16 GetPaperBin() const
DuplexMode GetDuplexMode() const
std::unique_ptr< ContentProperties > pData
VCL_DLLPRIVATE void ImplInit(SalPrinterQueueInfo *pInfo)
SAL_DLLPRIVATE void ImplPrintTransparent(const Bitmap &rBmp, const Bitmap &rMask, const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel)
std::vector< PaperInfo > m_aPaperFormats
virtual bool AcquireGraphics() const override
Acquire a graphics device that the output device uses to draw on.
std::unique_ptr< SalPrinterQueueInfo > mpSalQueueInfo
VCL_DLLPRIVATE void ImplInitDisplay()
static VCL_DLLPRIVATE SalPrinterQueueInfo * ImplGetQueueInfo(const OUString &rPrinterName, const OUString *pDriver)
VclPtr< OutputDevice > mpLastVirGraphics
void SetPrinterSettingsPreferred(bool bPaperSizeFromSetup)
const wchar_t *typedef int(__stdcall *DllNativeUnregProc)(int
const JobSetup & GetJobSetup() const
virtual ~Printer() override
static OUString GetDefaultPrinterName()
VCL_DLLPRIVATE void ImplUpdateFontList()
const ContentProperties & rData
std::shared_ptr< PhysicalFontCollection > mxFontCollection
void SetCopyCount(sal_uInt16 nCopy, bool bCollate)
static void updatePrinters()
Checks the printer list and updates it necessary.
std::unique_ptr< ImplDeviceFontSizeList > mpDeviceFontSizeList
void IntersectClipRegion(const tools::Rectangle &rRect)
void EnableMapMode(bool bEnable=true)
Size GetSizePixel() const
ImplFontMetricDataRef mxFontMetric
std::unique_ptr< SalPrinter > mpPrinter
void doSloppyFit(bool bAlsoTryRotated=false)
const OUString & GetDriver() const
Orientation GetOrientation() const
VCL_DLLPRIVATE void ImplInitData()
SAL_DLLPRIVATE const ImplJobSetup & ImplGetConstData() const
Point GetPageOffset() const
std::vector< tools::Rectangle > RectangleVector
virtual void dispose() override
virtual OUString GetDefaultPrinter()=0
void SetDriverDataLen(sal_uInt32 nDriverDataLen)
DuplexMode GetDuplexMode() const
bool Crop(const tools::Rectangle &rRectPixel)
Crop the bitmap.
SAL_DLLPRIVATE void InitLineColor()
std::unique_ptr< ImplPrnQueueList > mpPrinterQueueList
void SetDuplexMode(DuplexMode)
weld::Window * GetFrameWeld() const
virtual tools::Long GetGradientStepCount(tools::Long nMinRect) override
sal_uInt16 mnPageQueueSize
tools::Long getHeight() const
void DrawDeviceBitmap(const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel, BitmapEx &rBitmapEx) override
static void ImplCallEventListenersApplicationDataChanged(void *pData)
Send event to all VCL application event listeners.
bool Mirror(BmpMirrorFlags nMirrorFlags)
Mirror the bitmap.
void SetPaperHeight(tools::Long nHeight)
virtual bool Setup(weld::Window *pFrame, ImplJobSetup *pSetupData)=0
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
VCL_DLLPRIVATE void ImplFindPaperFormatForUserSize(JobSetup &)
virtual bool UsePolyPolygonForComplexGradient() override
AntialiasingFlags mnAntialiasing
css::awt::DeviceInfo GetDeviceInfo() const override
virtual Bitmap GetBitmap(const Point &rSrcPt, const Size &rSize) const
VCL_DLLPRIVATE void ImplEndPage()
const Size & GetPaperSizePixel() const
void SetDuplexMode(DuplexMode eDuplexMode)
#define PRINTER_GENERALERROR
void SetDriverData(sal_uInt8 *pDriverData)
bool Blend(const AlphaMask &rAlpha, const Color &rBackgroundColor)
Alpha-blend the given bitmap against a specified uniform background color.
SAL_DLLPRIVATE ImplJobSetup & ImplGetData()
void DrawRect(const tools::Rectangle &rRect)
#define SAL_N_ELEMENTS(arr)
OUString GetPaperBinName(sal_uInt16 nPaperBin) const
SalGraphics * mpGraphics
Graphics context to draw on.
VclPtr< VirtualDevice > mpDisplayDev
bool SetPaperSizeUser(const Size &rSize)
bool HasSupport(PrinterSupport eFeature) const
bool sloppyEqual(const PaperInfo &rOther) const
ImplSVData * ImplGetSVData()
VclPtr< Printer > mpFirstPrinter
virtual bool HasMirroredGraphics() const override
SAL_DLLPRIVATE void InitFillColor()
VclPtr< Printer > mpLastPrnGraphics
void SetPaperWidth(tools::Long nWidth)
virtual void GetResolution(sal_Int32 &rDPIX, sal_Int32 &rDPIY)=0
bool GetPapersizeFromSetup() const
std::unordered_map< OUString, sal_Int32 > m_aNameToIndex
bool TransformAndReduceBitmapExToTargetRange(const basegfx::B2DHomMatrix &aFullTransform, basegfx::B2DRange &aVisibleRange, double &fMaximumArea) override
Transform and reduce the area that needs to be drawn of the bitmap and return the new visible range a...
void SetOrientation(Orientation eOrientation)
virtual void ReleaseGraphics(SalGraphics *pGraphics)=0
void ImplUpdateJobSetupPaper(JobSetup &rJobSetup)
virtual void dispose() override
tools::Long FRound(double fVal)
virtual void SetFontOrientation(LogicalFontInstance *const pFontInstance) const override
const OUString & GetPrinterName() const
std::unique_ptr< ImplDeviceFontList > mpDeviceFontList
const OUString & GetDriverName() const
VCL_DLLPRIVATE void ImplStartPage()
const sal_uInt8 * GetDriverData() const
tools::Long Width() const
Some things multiple-inherit from VclAbstractDialog and OutputDevice, so we need to use virtual inher...
std::vector< OUString > m_aPrinterList
VclPtr< Printer > mpFirstPrnGraphics
ImplPrnQueueData * Get(const OUString &rPrinter)
std::unique_ptr< SalVirtualDevice > mpVirDev
virtual tools::Rectangle GetBackgroundComponentBounds() const override
vcl::Region CreateRegion(const Color &rColor, const tools::Rectangle &rRect) const
Create region of similar colors in a given rectangle.
const PaperInfo & GetPaperInfo(int nPaper) const
void SetPapersizeFromSetup(bool bPapersizeFromSetup)
virtual OUString GetPaperBinName(const ImplJobSetup *pSetupData, sal_uInt16 nPaperBin)=0
Size GetOutputSizePixel() const
Orientation GetOrientation() const
Base class used mainly for the LibreOffice Desktop class.
void ImplDeletePrnQueueList()
vcl::Region ClipToDeviceBounds(vcl::Region aRegion) const override
Perform actual rect clip against outdev dimensions, to generate empty clips whenever one of the value...
virtual void GetPageInfo(const ImplJobSetup *pSetupData, tools::Long &rOutWidth, tools::Long &rOutHeight, Point &rPageOffset, Size &rPaperSize)=0
virtual bool SetPrinterData(ImplJobSetup *pSetupData)=0
void DrawBitmap(const Point &rDestPt, const Bitmap &rBitmap)
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void DrawOutDev(const Point &rDestPt, const Size &rDestSize, const Point &rSrcPt, const Size &rSrcSize) override
constexpr sal_uInt32 QUEUE_JOBS_DONTKNOW
virtual void ReleaseGraphics(bool bRelease=true) override
Release the graphics device, and remove it from the graphics device list.
static const std::vector< OUString > & GetPrinterQueues()
void SetPaper(Paper ePaper)
virtual SalInfoPrinter * CreateInfoPrinter(SalPrinterQueueInfo *pQueueInfo, ImplJobSetup *pSetupData)=0
Bitmap GetBitmap(Color aTransparentReplaceColor) const
virtual Bitmap GetBitmap(const Point &rSrcPt, const Size &rSize) const override
Point PixelToLogic(const Point &rDevicePt) const
Point LogicToPixel(const Point &rLogicPt) const
std::vector< ImplPrnQueueData > m_aQueueInfos
virtual void SetXORMode(bool bSet, bool bInvertOnly)=0
VclPtr< OutputDevice > mpPrevGraphics
Previous output device in list.
void setAntiAlias(bool bNew)
VclPtr< VirtualDevice > mpAlphaVDev
sal_uInt16 GetPaperBin() const
const Point & GetPageOffsetPixel() const
AlphaMask GetAlpha() const
bool Setup(weld::Window *pWindow, PrinterSetupMode eMode=PrinterSetupMode::DocumentGlobal)
virtual void ReleaseGraphics(bool bRelease=true)=0
Release the graphics device, and remove it from the graphics device list.
VCL_DLLPRIVATE void ImplUpdatePageData()
const OUString & GetPrinterName() const
css::awt::DeviceInfo GetCommonDeviceInfo(Size const &aDevSize) const
void SetPaperBin(sal_uInt16 nPaperBin)
#define SAL_WARN_IF(condition, area, stream)
VCL_DLLPRIVATE void EndJob()
bool Convert(BmpConversion eConversion)
Convert bitmap format.
tools::Long GetPaperWidth() const
bool SetOrientation(Orientation eOrient)
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_WHITE
virtual void GetPrinterQueueInfo(ImplPrnQueueList *pList)=0
SAL_DLLPRIVATE void ImplUpdateFontData()
void GetRegionRectangles(RectangleVector &rTarget) const
int GetPaperInfoCount() const
Degree10 GetOrientation() const
VclPtr< OutputDevice > mpFirstVirGraphics
static VclPtr< reference_type > Create(Arg &&...arg)
A construction helper for VclPtr.
std::shared_ptr< ImplFontCache > mxScreenFontCache
std::unique_ptr< QueueInfo > mpQueueInfo
tools::Long Height() const
static VCL_DLLPRIVATE ErrCode ImplSalPrinterErrorCodeToVCL(SalPrinterError nError)
void SetPrinterName(const OUString &rPrinterName)
Reference< XComponentContext > getProcessComponentContext()
const ::std::vector< Color > ImpSvNumberformatScan::StandardColor COL_BLACK
static const QueueInfo * GetQueueInfo(const OUString &rPrinterName, bool bStatusUpdate)
bool GetPrinterSettingsPreferred() const
rtl::Reference< LogicalFontInstance > mpFontInstance
virtual void CopyArea(const Point &rDestPt, const Point &rSrcPt, const Size &rSrcSize, bool bWindowInvalidate=false) override
virtual void InitPaperFormats(const ImplJobSetup *pSetupData)=0
SalInfoPrinter * mpInfoPrinter
Paper GetPaperFormat() const
void SetDriver(const OUString &rDriver)
bool Erase(const Color &rFillColor)
Fill the entire bitmap with the given color.
virtual sal_uInt16 GetPaperBinCount(const ImplJobSetup *pSetupData)=0
void setHeight(tools::Long nHeight)
virtual void EmulateDrawTransparent(const tools::PolyPolygon &rPolyPoly, sal_uInt16 nTransparencePercent) override
virtual bool SetData(JobSetFlags nFlags, ImplJobSetup *pSetupData)=0
tools::Long GetPaperHeight() const
reference_type * get() const
Get the body.
std::shared_ptr< ImplFontCache > mxFontCache
#define SAL_WARN(area, stream)
OUString VclResId(const char *pId)
virtual Size GetButtonBorderSize() override
void SetPaperFormat(Paper ePaperFormat)
#define DBG_TESTSOLARMUTEX()
sal_uInt16 GetBitCount() const
bool SetJobSetup(const JobSetup &rSetup)
virtual void DrawDeviceMask(const Bitmap &rMask, const Color &rMaskColor, const Point &rDestPt, const Size &rDestSize, const Point &rSrcPtPixel, const Size &rSrcSizePixel) override
static OUString GetPaperName(Paper ePaper)
bool Replace(const Bitmap &rMask, const Color &rReplaceColor)
Replace all pixel where the given mask is on with the specified color.
const OUString & GetDriver() const
tools::Long getWidth() const
vcl::Window * ImplGetDefaultWindow()
Returns either the application window, or the default GL context window.
sal_uInt32 GetCapabilities(PrinterCapType nType) const
void Push(PushFlags nFlags=PushFlags::ALL)
void DrawGradient(const tools::Rectangle &rRect, const Gradient &rGradient)
virtual sal_uInt32 GetCapabilities(const ImplJobSetup *pSetupData, PrinterCapType nType)=0
std::shared_ptr< PhysicalFontCollection > mxScreenFontList
VCL_DLLPRIVATE void SetPrinterOptions(const PrinterOptions &rOptions)
SetPrinterOptions is used internally only now.
bool SetPrinterProps(const Printer *pPrinter)
std::unique_ptr< PrinterOptions > mpPrinterOptions
const Color & GetFillColor() const
std::unordered_map< int, OUString > maPaperNames
virtual void GetDevFontList(PhysicalFontCollection *)=0
Size GetPaperSize() const
virtual void DestroyInfoPrinter(SalInfoPrinter *pPrinter)=0
virtual void GetPrinterQueueState(SalPrinterQueueInfo *pInfo)=0
void Add(std::unique_ptr< SalPrinterQueueInfo > pData)