首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PdfSharp XGraphics.DrawString不支持从右到左的语言,如波斯语

PdfSharp XGraphics.DrawString不支持从右到左的语言,如波斯语
EN

Stack Overflow用户
提问于 2012-07-04 08:32:52
回答 3查看 2.1K关注 0票数 3

我正在使用PdfSharp创建一些pdf文件。除了我尝试使用Drawstring方法以从右到左的语言(例如,波斯语)将一些文本放入文件中之外,一切都很正常。虽然我选择了XPdfFontOptions中的Unicode编码和合适的字体系列(例如,"B Nazanin"),但它是离散绘制字母的。

Here是我所得到的一个图像。

B.T.W,有没有更好的方法来创建pdf文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-04 13:36:26

对于RTL语言来说,iTextSharp是更好的选择。你可以在here上找到关于它的教程。

票数 2
EN

Stack Overflow用户

发布于 2020-03-03 17:03:50

您需要颠倒字母,然后颠倒整个字符串。我自己也需要它,所以它是经过测试和正常工作的:

代码语言:javascript
复制
   public static string ReverseString(this string str)
{
    StringBuilder sb = new StringBuilder();
    foreach (char c in str.Reverse())
    {
        sb.Append(c);
    }

    return sb.ToString();
}

 public static string RightToLeft(this string str)
{
    List<string> output = str.Split(' ').Select(s => s.Any(c => c >= 1424 && c <= 1535) ? s.ReverseString() : s).ToList();
    output.Reverse();
    return string.Join(" ", output.ToArray());
}

 private void DrawStringBoxRightToLeft(XGraphics gfx, string text, XFont font, XBrush brush, XRect rect)
{
    List<string> words = text.Split(' ').ToList();
    List<string> sentences = new List<string>();

    while (words.Any())
    {
        while (gfx.MeasureString(string.Join(" ", sentences), font).Width < rect.Width && words.Any())
        {
            string s = words[0];
            sentences.Add(s);
            words.RemoveAt(0);
        }

        gfx.DrawString(string.Join(" ", sentences).RightToLeft(), font, brush, rect, XStringFormats.TopRight);
        rect.Y += font.Height;
        sentences.Clear();
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-07-04 13:37:27

PDFsharp还不支持从右到左的语言。

另请参阅:http://www.pdfsharp.net/wiki/PDFsharpFAQ.ashx#Does_PDFsharp_support_for_Arabic_Hebrew_CJK_Chinese_Japanese_Korean_6

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11321015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档