Ahm*_*gdi 7 pdf android dart flutter
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)),
),
),
);
Run Code Online (Sandbox Code Playgroud)
这是它的生成方式:
虽然预期的实际结果不应以字符分隔,但以下是我应该看到的示例:
只需添加textDirection: pw.TextDirection.rtl
到文本小部件,如下所示:
pw.Page(
build: (pw.Context context) => pw.Center(
child: pw.Text(test, style: pw.TextStyle(fontSize: 80,font: myFont),textDirection:
pw.TextDirection.rtl),
),
),
Run Code Online (Sandbox Code Playgroud)
注意:如果文本中包含一些数字,可能会出现问题
小智 5
只需添加theme: ThemeData.withFont(base: ttf,)
到页面小部件,如下所示:
var data = await rootBundle.load("fonts/IRANSansWeb(FaNum)_Bold.ttf");\n final ttf = Font.ttf(data);\n\n Page(\n pageFormat: PdfPageFormat.a4,\n theme: ThemeData.withFont(\n base: ttf,\n ),\n orientation: PageOrientation.landscape,\n build: (Context context) {\nreturn Align(\n alignment: Alignment.center,\n child: new Column(\n mainAxisAlignment: MainAxisAlignment.spaceBetween,\n crossAxisAlignment: CrossAxisAlignment.center,\n children: [\n Column(\n children: [\n Row(\n children: [\n Text(\n '\xd8\xae\xd9\x84\xdb\x8c\xd8\xac \xd9\x81\xd8\xa7\xd8\xb1\xd8\xb3',\n textDirection: TextDirection.rtl,\n )\n ]\n )\n ]\n ),\n Column(\n children: [\n Image(compareChartImage),\n ]\n ),\n Column(\n children:[\n Image(timingChartImage),\n ]\n )\n ]\n ));\n }\n)\n
Run Code Online (Sandbox Code Playgroud)\n
如果您的所有小部件都有 rtl 父级,则所有小部件都带有 pw.Directionality 并设置 TextDirection.rtl ,或者在单个文本小部件中使用 TextDirection.rtl
归档时间: |
|
查看次数: |
2224 次 |
最近记录: |