java - Java AWT Graphics2D drawString 方法不适用于阿拉伯文本
问题描述
我需要使用.drawString
Graphics2D ( java.awt
) 中的方法绘制阿拉伯语文本。但是当我使用以下代码使用该方法时,它只会显示一堆空方块
BufferedImage bufferedImage = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = bufferedImage.createGraphics();
graphics.drawString("مرحبا هذا نص عربي",
xStartText, endY + smallRectHeight);
有人可以帮忙吗?我已经搜索代码片段来解决这个问题,但我找不到任何东西?
解决方案
除非提供可以支持阿拉伯字符的字体(与应用程序一起),否则最好在运行时找到合适的字体。
我提供了 Noto Sans Arabic 作为字体..
提供字体是IMO最强大的解决方案。一些提示:另请参阅如何导入字体?并注意字体将在应用程序时成为嵌入式资源。已部署。嵌入式资源的信息页面提供了有关如何获取指向字体的 URL 的提示。
..它按预期工作。
很高兴你把事情解决了。
推荐阅读
- oracle - 如何在 Windows 10 机器上重启 oracle 11g 数据库
- python - KNN 回归导致训练集 (sklearn) 上的 MSE 为零
- javascript - 跨字段验证在 Angular 中不起作用
- ios - iOS 上的 Fabric - 新项目,相同的 bundleId - Answers/Crashlytics 不起作用
- android - android约束布局与标题栏重叠
- python - 如何返回在不同字典中获得新值的字典键的值
- c - C - 用getpid()中的ID替换字符串中的$$?
- c# - 无法弄清楚为什么我从 app.xaml 加载静态资源时出错
- elm - 导入特定功能与在 elm 中公开所有功能
- project-reactor - 从 SQS 队列上的消息创建 Flux