Loading pcbnew/dialog_print_using_printer.cpp +19 −9 Original line number Original line Diff line number Diff line Loading @@ -564,7 +564,7 @@ bool EDA_Printout::OnBeginDocument( int startPage, int endPage ) /*************************************************************/ /*************************************************************/ { { if( !wxPrintout::OnBeginDocument( startPage, endPage ) ) if( !wxPrintout::OnBeginDocument( startPage, endPage ) ) return FALSE; return false; return TRUE; return TRUE; } } Loading Loading @@ -699,11 +699,6 @@ void EDA_Printout::DrawPage() g_IsPrinting = TRUE; g_IsPrinting = TRUE; int bg_color = g_DrawBgColor; int bg_color = g_DrawBgColor; // background color can left BLACK only when drawing the full board at once, in color mode // Switch it to WHITE in others cases if( s_Print_Black_and_White || ( !m_PrintFrame->PrintUsingSinglePage() ) ) g_DrawBgColor = WHITE; if( m_Print_Sheet_Ref ) if( m_Print_Sheet_Ref ) m_Parent->TraceWorkSheet( dc, ActiveScreen, 0 ); m_Parent->TraceWorkSheet( dc, ActiveScreen, 0 ); Loading Loading @@ -748,14 +743,29 @@ void EDA_Printout::DrawPage() s_PrintMaskLayer |= EDGE_LAYER; s_PrintMaskLayer |= EDGE_LAYER; #endif #endif g_DrawBgColor = WHITE; /* when printing in color mode, we use the graphic OR mode that gives the same look as the screen * But because the backgroud is white when printing, we must use a trick: * In order to plot on a white background in OR mode we must: * 1 - Plot all items in black, this creates a local black backgroud * 2 - Plot in OR mode on black "local" background */ if( ! s_Print_Black_and_White ) { GRForceBlackPen( true ); panel->PrintPage( dc, 0, s_PrintMaskLayer, s_PrintMirror ); GRForceBlackPen( false ); } panel->PrintPage( dc, 0, s_PrintMaskLayer, s_PrintMirror ); panel->PrintPage( dc, 0, s_PrintMaskLayer, s_PrintMirror ); g_DrawBgColor = bg_color; g_DrawBgColor = bg_color; g_IsPrinting = FALSE; g_IsPrinting = false; panel->m_ClipBox = tmp; panel->m_ClipBox = tmp; SetPenMinWidth( 1 ); SetPenMinWidth( 1 ); GRForceBlackPen( FALSE ); GRForceBlackPen( false ); ActiveScreen->m_StartVisu = tmp_startvisu; ActiveScreen->m_StartVisu = tmp_startvisu; ActiveScreen->m_DrawOrg = old_org; ActiveScreen->m_DrawOrg = old_org; Loading pcbnew/plothpgl.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -432,7 +432,7 @@ void trace_1_pastille_OVALE_HPGL( wxPoint pos, wxSize size, int aOrient, int mod if( modetrace == FILLED ) if( modetrace == FILLED ) { { PlotRectangularPad_HPGL( pos, wxSize( size.x, deltaxy ), PlotRectangularPad_HPGL( pos, wxSize( size.x, deltaxy+pen_diam ), aOrient, modetrace ); aOrient, modetrace ); cx = 0; cy = deltaxy / 2; cx = 0; cy = deltaxy / 2; RotatePoint( &cx, &cy, aOrient ); RotatePoint( &cx, &cy, aOrient ); Loading pcbnew/print_board_functions.cpp +5 −10 Original line number Original line Diff line number Diff line Loading @@ -51,18 +51,13 @@ void WinEDA_DrawPanel::PrintPage( wxDC* aDC, bool aPrint_Sheet_Ref, int aPrintMa m_PrintIsMirrored = aPrintMirrorMode; m_PrintIsMirrored = aPrintMirrorMode; if( ( g_DrawBgColor == BLACK ) && (GetGRForceBlackPenState( ) == false) ) // The OR mode is used in color mode, but be aware the backgroud *must be BLACK. { // One can use the OR mode in this case, and we draw a black background to draw board in OR mode, like on screen // In print page dialog, we first plrint in BLACK, and after reprint in color, // But because black background are very expensive to draw, we draw in black only the minimun area. // on the black "local" backgroud, in OR mode // the black print is not made before, only a white page is printed if( GetGRForceBlackPenState( ) == false ) drawmode = GR_OR; drawmode = GR_OR; EDA_Rect rect = frame->GetBoard()->m_BoundaryBox; rect.Inflate( 2000, 2000 ); // Margin in 1/10000 inch around the board to draw the black background. GRSetDrawMode( aDC, GR_COPY ); // draw in black the minimum page area: GRFilledRect( &m_ClipBox, aDC, rect.GetX(), rect.GetY(), rect.GetEnd().x, rect.GetEnd().y, g_DrawBgColor, g_DrawBgColor ); } /* Print the pcb graphic items (texts, ...) */ /* Print the pcb graphic items (texts, ...) */ GRSetDrawMode( aDC, drawmode ); GRSetDrawMode( aDC, drawmode ); Loading Loading
pcbnew/dialog_print_using_printer.cpp +19 −9 Original line number Original line Diff line number Diff line Loading @@ -564,7 +564,7 @@ bool EDA_Printout::OnBeginDocument( int startPage, int endPage ) /*************************************************************/ /*************************************************************/ { { if( !wxPrintout::OnBeginDocument( startPage, endPage ) ) if( !wxPrintout::OnBeginDocument( startPage, endPage ) ) return FALSE; return false; return TRUE; return TRUE; } } Loading Loading @@ -699,11 +699,6 @@ void EDA_Printout::DrawPage() g_IsPrinting = TRUE; g_IsPrinting = TRUE; int bg_color = g_DrawBgColor; int bg_color = g_DrawBgColor; // background color can left BLACK only when drawing the full board at once, in color mode // Switch it to WHITE in others cases if( s_Print_Black_and_White || ( !m_PrintFrame->PrintUsingSinglePage() ) ) g_DrawBgColor = WHITE; if( m_Print_Sheet_Ref ) if( m_Print_Sheet_Ref ) m_Parent->TraceWorkSheet( dc, ActiveScreen, 0 ); m_Parent->TraceWorkSheet( dc, ActiveScreen, 0 ); Loading Loading @@ -748,14 +743,29 @@ void EDA_Printout::DrawPage() s_PrintMaskLayer |= EDGE_LAYER; s_PrintMaskLayer |= EDGE_LAYER; #endif #endif g_DrawBgColor = WHITE; /* when printing in color mode, we use the graphic OR mode that gives the same look as the screen * But because the backgroud is white when printing, we must use a trick: * In order to plot on a white background in OR mode we must: * 1 - Plot all items in black, this creates a local black backgroud * 2 - Plot in OR mode on black "local" background */ if( ! s_Print_Black_and_White ) { GRForceBlackPen( true ); panel->PrintPage( dc, 0, s_PrintMaskLayer, s_PrintMirror ); GRForceBlackPen( false ); } panel->PrintPage( dc, 0, s_PrintMaskLayer, s_PrintMirror ); panel->PrintPage( dc, 0, s_PrintMaskLayer, s_PrintMirror ); g_DrawBgColor = bg_color; g_DrawBgColor = bg_color; g_IsPrinting = FALSE; g_IsPrinting = false; panel->m_ClipBox = tmp; panel->m_ClipBox = tmp; SetPenMinWidth( 1 ); SetPenMinWidth( 1 ); GRForceBlackPen( FALSE ); GRForceBlackPen( false ); ActiveScreen->m_StartVisu = tmp_startvisu; ActiveScreen->m_StartVisu = tmp_startvisu; ActiveScreen->m_DrawOrg = old_org; ActiveScreen->m_DrawOrg = old_org; Loading
pcbnew/plothpgl.cpp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -432,7 +432,7 @@ void trace_1_pastille_OVALE_HPGL( wxPoint pos, wxSize size, int aOrient, int mod if( modetrace == FILLED ) if( modetrace == FILLED ) { { PlotRectangularPad_HPGL( pos, wxSize( size.x, deltaxy ), PlotRectangularPad_HPGL( pos, wxSize( size.x, deltaxy+pen_diam ), aOrient, modetrace ); aOrient, modetrace ); cx = 0; cy = deltaxy / 2; cx = 0; cy = deltaxy / 2; RotatePoint( &cx, &cy, aOrient ); RotatePoint( &cx, &cy, aOrient ); Loading
pcbnew/print_board_functions.cpp +5 −10 Original line number Original line Diff line number Diff line Loading @@ -51,18 +51,13 @@ void WinEDA_DrawPanel::PrintPage( wxDC* aDC, bool aPrint_Sheet_Ref, int aPrintMa m_PrintIsMirrored = aPrintMirrorMode; m_PrintIsMirrored = aPrintMirrorMode; if( ( g_DrawBgColor == BLACK ) && (GetGRForceBlackPenState( ) == false) ) // The OR mode is used in color mode, but be aware the backgroud *must be BLACK. { // One can use the OR mode in this case, and we draw a black background to draw board in OR mode, like on screen // In print page dialog, we first plrint in BLACK, and after reprint in color, // But because black background are very expensive to draw, we draw in black only the minimun area. // on the black "local" backgroud, in OR mode // the black print is not made before, only a white page is printed if( GetGRForceBlackPenState( ) == false ) drawmode = GR_OR; drawmode = GR_OR; EDA_Rect rect = frame->GetBoard()->m_BoundaryBox; rect.Inflate( 2000, 2000 ); // Margin in 1/10000 inch around the board to draw the black background. GRSetDrawMode( aDC, GR_COPY ); // draw in black the minimum page area: GRFilledRect( &m_ClipBox, aDC, rect.GetX(), rect.GetY(), rect.GetEnd().x, rect.GetEnd().y, g_DrawBgColor, g_DrawBgColor ); } /* Print the pcb graphic items (texts, ...) */ /* Print the pcb graphic items (texts, ...) */ GRSetDrawMode( aDC, drawmode ); GRSetDrawMode( aDC, drawmode ); Loading