首页 > 解决方案 > 如何在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)),
      ),
    ),
  );

这是它的生成方式:

在此处输入图像描述

虽然预期的实际结果不应以字符分隔,但这是我应该看到的示例:

在此处输入图像描述

标签: androidflutterpdfdart

解决方案


只需添加textDirection: pw.TextDirection.rtlText小部件,如下所示:

 pw.Page(
      build: (pw.Context context) => pw.Center(
        child: pw.Text(test, style: pw.TextStyle(fontSize: 80,font: myFont),textDirection: 
        pw.TextDirection.rtl),
      ),
    ),

注意:如果文本包含一些数字,可能会出现问题


推荐阅读