android - 如何在flutter pdf生成中添加阿拉伯字符
问题描述
我正在尝试使用包PDF生成一个 pdf ,这是我的代码:
final doc = pw.Document();
var data = await rootBundle.load("assets/fonts/arial.ttf");
var myFont = Font.ttf(data);
String test = 'الشكرمون طاخ فى الترارولى';
var data2 = utf8.encode(test);
doc.addPage(
pw.Page(
build: (pw.Context context) => pw.Center(
child: pw.Text(test, style: pw.TextStyle(fontSize: 80,font: myFont)),
),
),
);
这是它的生成方式:
虽然预期的实际结果不应以字符分隔,但这是我应该看到的示例:
解决方案
只需添加textDirection: pw.TextDirection.rtl
到Text小部件,如下所示:
pw.Page(
build: (pw.Context context) => pw.Center(
child: pw.Text(test, style: pw.TextStyle(fontSize: 80,font: myFont),textDirection:
pw.TextDirection.rtl),
),
),
注意:如果文本包含一些数字,可能会出现问题
推荐阅读
- sql - 为什么通过使用子查询调用 UDF 来提高查询性能?
- android - 多个 OneTimeWorkRequests 延迟为链
- r - 计算R中的多组逐行比例
- .net - SSIS Dot Net Script 任务 - 获取运行时包变量值
- r - 使用 newey-West 标准误差和 R2 分组的时间序列回归
- reactjs - 函数未在 React Native 中的渲染内触发
- reactjs - 如何将组件传递给另一个组件?
- python - 在 OpenShift 上运行 Flask 应用程序时未设置环境变量“ENV”
- python - 我正在尝试通过 def 函数破坏另一个窗口,但我不断收到此错误
- ios - 检查 UITextfield 的数字间隔