Print on Linux: use 600 DPI instead of the default 72 DPI (noticeable in Pcbnew)
This commit is contained in:
parent
af0cb68c1b
commit
bd693f97a1
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018 CERN
|
* Copyright (C) 2019 CERN
|
||||||
* Author: Maciej Suminski <maciej.suminski@cern.ch>
|
* Author: Maciej Suminski <maciej.suminski@cern.ch>
|
||||||
* Author: Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
* Author: Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
||||||
*
|
*
|
||||||
|
@ -63,8 +63,14 @@ CAIRO_PRINT_CTX::CAIRO_PRINT_CTX( wxDC* aDC )
|
||||||
#ifdef __WXGTK__
|
#ifdef __WXGTK__
|
||||||
m_ctx = static_cast<cairo_t*>( gctx->GetNativeContext() );
|
m_ctx = static_cast<cairo_t*>( gctx->GetNativeContext() );
|
||||||
m_surface = cairo_get_target( m_ctx );
|
m_surface = cairo_get_target( m_ctx );
|
||||||
// Magic value: apparently for linux, all printers are 72 DPI
|
// On linux, cairo printers are 72 DPI by default. This is an ususable resolution for us.
|
||||||
m_dpi = 72.0;
|
// A reasonable resolution is 600 DPI
|
||||||
|
// so modify the default:
|
||||||
|
#define DEFAULT_DPI 72.0
|
||||||
|
#define KICAD_PRINTER_DPI 600.0
|
||||||
|
// our device scale is DEFAULT_DPI / KICAD_PRINTER_DPI
|
||||||
|
cairo_surface_set_device_scale( m_surface, DEFAULT_DPI/KICAD_PRINTER_DPI, DEFAULT_DPI/KICAD_PRINTER_DPI );
|
||||||
|
m_dpi = KICAD_PRINTER_DPI;
|
||||||
#endif /* __WXGTK__ */
|
#endif /* __WXGTK__ */
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
|
@ -122,6 +128,7 @@ CAIRO_PRINT_GAL::CAIRO_PRINT_GAL( GAL_DISPLAY_OPTIONS& aDisplayOptions,
|
||||||
m_clearColor = COLOR4D( 1.0, 1.0, 1.0, 1.0 );
|
m_clearColor = COLOR4D( 1.0, 1.0, 1.0, 1.0 );
|
||||||
m_hasNativeLandscapeRotation = false;
|
m_hasNativeLandscapeRotation = false;
|
||||||
resetContext();
|
resetContext();
|
||||||
|
|
||||||
SetScreenDPI( m_printCtx->GetNativeDPI() );
|
SetScreenDPI( m_printCtx->GetNativeDPI() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue