首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在颤动中生成PDF文件的二维码

如何在颤动中生成PDF文件的二维码
EN

Stack Overflow用户
提问于 2021-05-11 16:49:30
回答 1查看 356关注 0票数 2

我已经使用了这个解决方案How Can I generate QR code and Show it on a PDF page in Flutter,但二维码仍然没有打印出来。

我的代码:

代码语言:javascript
复制
  pdf.BarcodeWidget(
              color: PdfColor.fromHex("#000000"),
              barcode:pdf.Barcode.qrCode(), data: "My name is Bilal"
          ),

这是我的函数:

代码语言:javascript
复制
Future<Uint8List> func_generate_sale_pdf(PdfPageFormat format) {
    final doc = pdf.Document();

    doc.addPage(pdf.Page(build: (pdf.Context context) {
      return pdf.Center(
        child: pdf.Column(children: <pdf.Widget>[

          pdf.Text(config.app_name.toUpperCase(),
              style:
                  pdf.TextStyle(fontSize: 32, fontWeight: pdf.FontWeight.bold)),
          pdf.SizedBox(height: 25),
          pdf.Text(
              " ${languages.skeleton_language_objects[config.app_language]['for_enquiries_call']} : ${config.app_contacts}",
              style: pdf.TextStyle(fontSize: 22)),
          pdf.SizedBox(height: 5),
          pdf.Text("${config.app_po_box}", style: pdf.TextStyle(fontSize: 22)),
          pdf.SizedBox(height: 5),
          pdf.Text(
              "${languages.skeleton_language_objects[config.app_language]['receipt']} # ${receipt_data['receipt_no']}",
              style: pdf.TextStyle(fontSize: 20)),
          pdf.SizedBox(height: 5),
          pdf.Text("${receipt_data['date_time']}",
              style: pdf.TextStyle(fontSize: 20)),
          pdf.SizedBox(height: 30),
          pdf.Container(
            alignment: pdf.Alignment.topLeft,
            child: pdf.Text("${receipt_data['items_list'].toString()}",
                style: pdf.TextStyle(
                    fontSize: 22, fontWeight: pdf.FontWeight.normal),
                textAlign: pdf.TextAlign.left),
          ),
          pdf.SizedBox(height: 30),
          pdf.Container(
              child: pdf.Row(children: <pdf.Widget>[
            pdf.Expanded(
              flex: 1,
              child: pdf.Text(
                  languages.skeleton_language_objects[config.app_language]
                      ['total_amount'],
                  style: pdf.TextStyle(
                      fontSize: 20, fontWeight: pdf.FontWeight.bold),
                  textAlign: pdf.TextAlign.left),
            ),
            pdf.Expanded(
              flex: 1,
              child: pdf.Text("${receipt_data['total_amount']}",
                  style: pdf.TextStyle(fontSize: 20),
                  textAlign: pdf.TextAlign.right),
            ),
          ])),
          pdf.SizedBox(height: 10),
          pdf.Container(
              child: pdf.Row(children: <pdf.Widget>[
            pdf.Expanded(
              flex: 1,
              child: pdf.Text(
                  languages.skeleton_language_objects[config.app_language]
                      ['total_items'],
                  style: pdf.TextStyle(
                      fontSize: 20, fontWeight: pdf.FontWeight.bold),
                  textAlign: pdf.TextAlign.left),
            ),
            pdf.Expanded(
              flex: 1,
              child: pdf.Text("${receipt_data['total_items']}",
                  style: pdf.TextStyle(fontSize: 20),
                  textAlign: pdf.TextAlign.right),
            ),
          ])),
          pdf.SizedBox(height: 10),
          pdf.Container(
              height: 35,
              child: pdf.Row(children: <pdf.Widget>[
                pdf.Expanded(
                  flex: 1,
                  child: pdf.Text(
                      languages.skeleton_language_objects[config.app_language]
                          ['total_tax'],
                      style: pdf.TextStyle(
                          fontSize: 20, fontWeight: pdf.FontWeight.bold),
                      textAlign: pdf.TextAlign.left),
                ),
                pdf.Expanded(
                  flex: 1,
                  child: pdf.Text("${receipt_data['total_tax_amount']}",
                      style: pdf.TextStyle(fontSize: 20),
                      textAlign: pdf.TextAlign.right),
                ),
              ])),
          pdf.SizedBox(height: 35),
          pdf.Text(
              languages.skeleton_language_objects[config.app_language]
                  ['thant_you_and_come_again'],
              style: pdf.TextStyle(fontSize: 24)),


         //From here on, the compiler doesn't print anything.
          pdf.BarcodeWidget(
              color: PdfColor.fromHex("#000000"),
              barcode:pdf.Barcode.qrCode(), data: "My name is Bilal"
          ),
          pdf.Text("SkillzUPP Technologies: +923058431046",
              style: pdf.TextStyle(fontSize: 24),
              textAlign: pdf.TextAlign.center),
          pdf.SizedBox(height: 10),

        ]),
      ); // Center
    }));

    return doc.save();
  }

除了QR Code之外,所有内容都可以正常打印,并且在该特定行的终端上显示此错误:

代码语言:javascript
复制
Helvetica-Bold has no Unicode support see https://github.com/DavBfr/dart_pdf/wiki/Fonts-Management
EN

回答 1

Stack Overflow用户

发布于 2021-05-11 19:07:41

我有一个问题显示行"has no Unicode support..."来解决我在我的项目上创建了一个文件夹字体并添加了一些真正的字体,然后我为文档创建了一个pdf主题,如下所示:

代码语言:javascript
复制
var myTheme = ThemeData.withFont(
      base: Font.ttf(await rootBundle.load("fonts/OpenSans-Regular.ttf")),
      bold: Font.ttf(await rootBundle.load("fonts/OpenSans-Bold.ttf")),
      italic: Font.ttf(await rootBundle.load("fonts/OpenSans-Italic.ttf")),
      boldItalic:
          Font.ttf(await rootBundle.load("fonts/OpenSans-BoldItalic.ttf")),
    );

然后我在文档的页面中使用了主题,错误就消失了,如下所示:

代码语言:javascript
复制
Page(theme: myTheme,...)

我不确定是否是同样的情况,但我认为你应该试试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67483441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档