Implemented high-quality preview for wxMSW (this approach doesn't work

on other platforms). The preview is now accurate representation of printed
page and wxHtmlEasyPrinting preview shows identical layout to what will
be printed.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2008-06-16 08:41:51 +00:00
parent 9f7e7edb78
commit 25a3fca2e5
5 changed files with 362 additions and 32 deletions

View File

@@ -44,6 +44,8 @@ private:
// wxPrintout.
// ---------------------------------------------------------------------------
#define wxUSE_HIGH_QUALITY_PREVIEW (wxUSE_IMAGE && wxUSE_WXDIB)
class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase
{
public:
@@ -58,7 +60,22 @@ public:
virtual bool Print(bool interactive);
virtual void DetermineScaling();
#if wxUSE_HIGH_QUALITY_PREVIEW
protected:
bool RenderPageIntoBitmapHQ(wxBitmap& bmp, int pageNum);
virtual bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum);
private:
bool RenderPageFragment(float scaleX, float scaleY,
int *nextFinalLine,
wxPrinterDC& printer,
wxMemoryDC& finalDC,
const wxRect& rect,
int pageNum);
bool m_hqPreviewFailed;
#endif // wxUSE_HIGH_QUALITY_PREVIEW
DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPrintPreview)
};