尝试在flutter中创建不同语言的pdf

wribegjk  于 2023-03-19  发布在  Flutter
关注(0)|答案(5)|浏览(143)

我想在我的PDF打印印地语,我也尝试过使用谷歌Raleway-Regular.ttf字体,但它也没有工作。

final font = await rootBundle.load("fonts/ARIAL.TTF");
final ttf = pw.Font.ttf(font);

pdf.addPage(
  pw.MultiPage(
    pageFormat: PdfPageFormat.a4,
    margin: pw.EdgeInsets.all(32),
    build: (pw.Context context){
    return <pw.Widget>[
      pw.Center(
        child: pw.Text("मेन",style: pw.TextStyle(fontSize: 16,font: ttf))
      ),
      pw.SizedBox(height: 20),
      pw.Center(
      child: pw.Text("ABC",style: pw.TextStyle(fontSize: 16))
    ),
  ),
),

我收到以下错误:

***I/扑动(24862):无法将字符串解码为Latin 1. I/flutter(24862):此字体不支持Unicode字符。(24862)(I/flutter):如果要使用拉丁字符串以外的字符串,请改用TrueType(TTF)字体。I/flutter(24862):参见https://github.com/DavBfr/dart_pdf/wiki/Fonts-Management I/ Flutter (24862):---------------------------------- E/Flutter(24862):[错误:flutter/lib/ui/ui_dart_state.cc(177)]未处理的异常:无效参数(字符串):包含无效字符。错误:“”

luaexgnf

luaexgnf1#

我也面临着同样的错误,因为你使用的字体不支持这种语言,如果你想使用印地语,那么你可以使用hind-regular.ttl字体,它同时支持印地语和英语字体。
这是我得到的例子。
//步骤1-在pubspec中添加字体位置
字体:-系列:hind字体:- 资产:资产/hind.ttf
//步骤2-
最终pdf =-文档();

final font = await rootBundle.load("assets/hind.ttf");

final ttf = pw.Font.ttf(font);

然后在fontStyle中应用这个ttf
我正在使用的软件包-
将“软件包:universal_html/html.dart”导入为html格式;
导入“包:pdf/widgets.dart”为pw;
通用_html:^1.2.3 x 1 e0f1x pdf文件:第一年十一月一日

gwbalxhn

gwbalxhn2#

Unicode转换存在一些问题。请注意https://github.com/DavBfr/dart_pdf/issues/198
你可以使用syncfusion pdf库(你需要购买订阅)。你会得到各种支持,包括搜索,rtl,unicode支持。

final  font = await rootBundle.load("assets/fonts/hind.ttf");
final  ttf = Font.ttf(font);
final pdf = pw.Document();
pw.Text(
  'Your text',
  textDirection:TextDirection.rtl, // If you need in opp direction like urdu
  style: pw.TextStyle(
  font: ttf,))
ghhaqwfi

ghhaqwfi3#

如果还有人有这个问题

final data = await rootBundle.load('assets/fonts/opensans_regular.ttf');

 final  dataint = data.buffer.asUint8List(data.offsetInBytes,data.lengthInBytes);

 final  PdfFont  font  =  PdfTrueTypeFont (date,12);
r8xiu3jd

r8xiu3jd4#

大多数语言不能很好地与flutter pdf插件一起工作
在泰米尔语中,当两个字符合并时,我会遇到问题。
所以,我修改了tff与可用的工具和取代字符与字符.作为这结果,我可以能够得到这输出

String path = 'assets/custom_Anand_MuktaMalar.ttf';
pw.Font? tamilFont = pw.Font.ttf(await rootBundle.load(path));
pw.Text('உவவுமதி உருவின் ஓங்கல் வெண்குடை'.toPrintPdf)

pdf.addPage(
    pw.Page(
        theme: pw.ThemeData(defaultTextStyle: pw.TextStyle(font: tamilFont)),
  ));

作为进一步参考,您可以查看我的项目:https://github.com/anandsubbu007/anand-work/tree/BLOC/tamil_pdf

vddsk6oq

vddsk6oq5#

要打印孟加拉语字体,请使用此方法:

1.使用 SiyamRupaliANSI 字体
1.使用孟加拉字体并将其转换为UNICODE TO BIJOY

1.复制转换后的代码并使用fontfamily将其粘贴到文本小部件SiyamRupaliANSI代码示例:

final font = await rootBundle.load("fonts/SiyamRupaliANSI.ttf");
pw.Text( "e‡Kqv", style: pw.TextStyle(
                            fontWeight: FontWeight.bold,
                            fontSize: 14,
                            font: Font.ttf(font),
                    ),

1.得到这个最终的pdf输出

相关问题