2010-10-24 68 views
0

DrawString中是否有任何其他属性或参数可解决此问题。 我有许多零宽度字符的希伯来语字体,以便两个字符应呈现在相同的位置。.net DrawString具有零宽字符的希伯来字体

这个例子显示在左边的.NET的问题,什么是应该像右侧:

http://hebrewresources.com/html5/images/rendering_issue.png

Word和Visual Studio的文本框呈现相同的方式,但在SumTotal'sToolbook ,它呈现正确。

这实际上是一个非常古老的15年前的真实字体, ,它甚至不是从右到左。我可能会切换到较新的字体,但然后 我将不得不编写一个程序来重新映射每个字符和元音。

objGraphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; 
objGraphics.DrawString(text, objFont, Brushes.Black, border/2, border/2); 

回答

0

您将有:

objGraphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; 
var stringFormat = new StringFormat(StringFormatFlags.DirectionRightToLeft); 
float x = border/2; 
float y = border/2; 
objGraphics.DrawString(text, objFont, Brushes.Black, x, y, stringFormat); 

如果它不工作,你将不得不尝试其他标志:

http://msdn.microsoft.com/en-us/library/system.drawing.stringformatflags(v=VS.71).aspx

+0

就像我说的,我的字体真在从右到左的字体存在之前创建,我现在只是尝试了这个选项,并没有打印任何东西。我也尝试过NoWrap,NoFontFallback,NoFit和FitBlackBox。他们都打印信件,但看起来和我原来的帖子一样。 – NealWalters 2010-10-24 22:34:04