X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b64de91622281ec29d4e5990d09aa6ca6c41e0a0..c921fd5994d6d22b08ec98512eb59ee6f8939460:/src/generic/printps.cpp diff --git a/src/generic/printps.cpp b/src/generic/printps.cpp index 9a97d9cc6e..dfa6611416 100644 --- a/src/generic/printps.cpp +++ b/src/generic/printps.cpp @@ -30,7 +30,7 @@ #include "wx/defs.h" -#if wxUSE_PRINTING_ARCHITECTURE +#if wxUSE_PRINTING_ARCHITECTURE && wxUSE_POSTSCRIPT #ifndef WX_PRECOMP #include "wx/utils.h" @@ -39,6 +39,7 @@ #include "wx/msgdlg.h" #include "wx/intl.h" #include "wx/progdlg.h" + #include "wx/log.h" #endif #include "wx/generic/printps.h" @@ -56,7 +57,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxPostScriptPrinter, wxPrinterBase) IMPLEMENT_CLASS(wxPostScriptPrintPreview, wxPrintPreviewBase) - + // ============================================================================ // implementation // ============================================================================ @@ -148,25 +149,13 @@ bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool pro return FALSE; } - int logPPIScreenX = 0; - int logPPIScreenY = 0; - int logPPIPrinterX = 0; - int logPPIPrinterY = 0; - - logPPIScreenX = 100; - logPPIScreenY = 100; - - /* - // Correct values for X/PostScript? - logPPIPrinterX = 100; - logPPIPrinterY = 100; - */ + wxSize ScreenPixels = wxGetDisplaySize(); + wxSize ScreenMM = wxGetDisplaySizeMM(); - logPPIPrinterX = wxPostScriptDC::GetResolution(); - logPPIPrinterY = wxPostScriptDC::GetResolution(); - - printout->SetPPIScreen(logPPIScreenX, logPPIScreenY); - printout->SetPPIPrinter(logPPIPrinterX, logPPIPrinterY); + printout->SetPPIScreen( (int) ((ScreenPixels.GetWidth() * 25.4) / ScreenMM.GetWidth()), + (int) ((ScreenPixels.GetHeight() * 25.4) / ScreenMM.GetHeight()) ); + printout->SetPPIPrinter( wxPostScriptDC::GetResolution(), + wxPostScriptDC::GetResolution() ); // Set printout parameters printout->SetDC(dc); @@ -348,8 +337,11 @@ void wxPostScriptPrintPreview::DetermineScaling() if (paper) { - m_previewPrintout->SetPPIScreen(100, 100); - // m_previewPrintout->SetPPIPrinter(100, 100); + wxSize ScreenPixels = wxGetDisplaySize(); + wxSize ScreenMM = wxGetDisplaySizeMM(); + + m_previewPrintout->SetPPIScreen( (int) ((ScreenPixels.GetWidth() * 25.4) / ScreenMM.GetWidth()), + (int) ((ScreenPixels.GetHeight() * 25.4) / ScreenMM.GetHeight()) ); m_previewPrintout->SetPPIPrinter(wxPostScriptDC::GetResolution(), wxPostScriptDC::GetResolution()); wxSize sizeDevUnits(paper->GetSizeDeviceUnits());