1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef GFX_PDFSURFACE_H
7 #define GFX_PDFSURFACE_H
9 #include "gfxASurface.h"
10 #include "gfxContext.h"
12 /* for the output stream */
14 #include "nsIOutputStream.h"
16 class THEBES_API gfxPDFSurface
: public gfxASurface
{
18 gfxPDFSurface(nsIOutputStream
*aStream
, const gfxSize
& aSizeInPoints
);
19 virtual ~gfxPDFSurface();
21 virtual nsresult
BeginPrinting(const nsAString
& aTitle
, const nsAString
& aPrintToFileName
);
22 virtual nsresult
EndPrinting();
23 virtual nsresult
AbortPrinting();
24 virtual nsresult
BeginPage();
25 virtual nsresult
EndPage();
26 virtual void Finish();
28 void SetDPI(double x
, double y
);
29 void GetDPI(double *xDPI
, double *yDPI
);
32 virtual const gfxIntSize
GetSize() const
34 return gfxIntSize(mSize
.width
, mSize
.height
);
37 virtual int32_t GetDefaultContextFlags() const
39 return gfxContext::FLAG_SIMPLIFY_OPERATORS
|
40 gfxContext::FLAG_DISABLE_SNAPPING
|
41 gfxContext::FLAG_DISABLE_COPY_BACKGROUND
;
45 nsCOMPtr
<nsIOutputStream
> mStream
;
51 #endif /* GFX_PDFSURFACE_H */