Plot dxf format: fix issue for some non latin1 chars.

This commit is contained in:
Jacobo Aragunde Perez 2013-02-15 12:53:16 +01:00 committed by jean-pierre charras
parent a379e5d67c
commit af9ee9f4e7
1 changed files with 21 additions and 1 deletions

View File

@ -528,6 +528,25 @@ void DXF_PLOTTER::FlashPadTrapez( const wxPoint& aPadPos, const wxPoint *aCorner
FinishTo( coord[0] );
}
/**
* Checks if a given string contains non-ASCII characters.
* FIXME: the performance of this code is really poor, but in this case it can be
* acceptable because the plot operation is not called very often.
* @param string String to check
* @return true if it contains some non-ASCII character, false if all characters are
* inside ASCII range (<=255).
*/
bool containsNonAsciiChars( const wxString& string )
{
for( unsigned i = 0; i < string.length(); i++ )
{
wchar_t ch = string[i];
if( ch > 255 )
return true;
}
return false;
}
void DXF_PLOTTER::Text( const wxPoint& aPos,
enum EDA_COLOR_T aColor,
const wxString& aText,
@ -539,7 +558,8 @@ void DXF_PLOTTER::Text( const wxPoint& aPos,
bool aItalic,
bool aBold )
{
if( textAsLines )
if( textAsLines || containsNonAsciiChars( aText ) )
/* output text as graphics */
PLOTTER::Text( aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify,
aWidth, aItalic, aBold );
else