如何在flutter中打印生成的QR图像

问题描述 投票:0回答:2

我正在flutter中生成不同领域的二维码。现在我需要点击按钮生成 QR 图像。为此,我尝试使用 blue_ Thermal_printer: ^1.1.5 但遇到了一些困难。

下面附加的代码是生成 QR 图像的文件的代码。现在,通过单击此页面上的按钮,我需要生成一个 QR 图像以在屏幕上显示。预先感谢。

import 'package:flutter/material.dart';
import 'package:qr_flutter/qr_flutter.dart';
import 'package:share_plus/share_plus.dart';
import '../../../routes.dart';

class GenerateClipboard extends StatelessWidget {
  String dataa;
  GenerateClipboard({ this.dataa});

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Material(
      child: Scaffold(

        body: Container(
          height: MediaQuery.of(context).size.height,
          decoration: const BoxDecoration(
            image: DecorationImage(
              image: AssetImage("assets/images/bg_all.png"),
              fit: BoxFit.fill,
            ),
          ),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [

              Padding(
                padding: const EdgeInsets.only(top: 20, left: 20  ),
                child: Stack(
                  children: [
                    Align(
                      alignment: Alignment.centerLeft,
                      child: InkWell(
                        child: const Icon(Icons.arrow_back_ios),
                        onTap: () {
                          Navigator.pushReplacementNamed(
                              context, MyRoutes.clipboard);
                        },
                      ),
                    ),
                    const Align(
                      alignment: Alignment.center,
                      child: Text("Generate Code",
                          textAlign: TextAlign.center,
                          style: TextStyle(fontSize: 20)),
                    )
                  ],
                ),
              ),

              Padding(
                padding: const EdgeInsets.only(top: 20),
                child: QrImage(
                  data: "$dataa",
                  version: QrVersions.auto,
                  size: 250,
                ),
              ),

              Padding(
                padding: const EdgeInsets.all(60),
                child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Image.asset("assets/images/wifi/print.png", height: 100, width: 100),
                      InkWell(
                          onTap: () {
                            Share.share("https://play.google.com/store/apps/details?id=com.instructivetech.testapp");
                          },
                          child: Image.asset("assets/images/wifi/export.png", height: 100, width: 100)),
                    ]
                ),
              )

            ],
          ),
        ),
      ),
    );
  }
}
flutter flutter-dependencies
2个回答
0
投票
                  Screenshot(
                    controller: screenshotController,
                    child: QrImageView(
                      data:
                          ' https://top108.web.app/ \n  \nSociety of Humanity Education and Research',
                      version: QrVersions.auto,
                      size: 250.0,
                      backgroundColor: Colors.white,
                      semanticsLabel: 'QR CODE',
                    ),
                  ),
                  Column(
                    children: [
                      IconButton(
                          onPressed: () {
                            // share qr to others
                          },
                          icon: const Icon(Icons.share)),
                      IconButton(
                        onPressed: () async {
                          try {
                            ui.Image? image = await screenshotController
                                .captureAsUiImage();
                            if (image != null) {
                              ByteData? byteData = await image.toByteData(
                                  format: ui.ImageByteFormat.png);
                              Uint8List pngBytes =
                                  byteData!.buffer.asUint8List();

                              await ImageGallerySaver.saveImage(pngBytes,
                                  name: 'Library QR');
                              ScaffoldMessenger.of(context).showSnackBar(
                                const SnackBar(
                                  content: Text('QR Code saved to gallery'),
                                ),
                              );
                            }
                          } catch (e) {
                            ScaffoldMessenger.of(context).showSnackBar(
                              const SnackBar(
                                content: Text('try again'),
                              ),
                            );
                          }
                        },
                        icon: const Icon(Icons.save),
                      ),
                    ],
                  )
                ],
              )
          

-2
投票

根据我的研究,有很好的选择:

flutter_barcode_scanner :- https://pub.dev/packages/flutter_barcode_scanner(阅读器)

barcode_scan :- https://pub.dev/packages/barcode_scanner(阅读器)

qr_flutter :- https://pub.dev/packages/qr_flutter(用于创建二维码)

希望对你有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.