首页 > 解决方案 > Java AWT Graphics2D drawString 方法不适用于阿拉伯文本

问题描述

我需要使用.drawStringGraphics2D ( java.awt) 中的方法绘制阿拉伯语文本。但是当我使用以下代码使用该方法时,它只会显示一堆空方块

BufferedImage bufferedImage = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = bufferedImage.createGraphics();
graphics.drawString("مرحبا هذا نص عربي",
                        xStartText, endY + smallRectHeight);

结果输出

有人可以帮忙吗?我已经搜索代码片段来解决这个问题,但我找不到任何东西?

标签: javafontsawt

解决方案


除非提供可以支持阿拉伯字符的字体(与应用程序一起),否则最好在运行时找到合适的字体

我提供了 Noto Sans Arabic 作为字体..

提供字体是IMO最强大的解决方案。一些提示:另请参阅如何导入字体?并注意字体将在应用程序时成为嵌入式资源。已部署。嵌入式资源的信息页面提供了有关如何获取指向字体的 URL 的提示。

..它按预期工作。

很高兴你把事情解决了。


推荐阅读