【问题标题】:Fix flutter printing pacakge UI修复flutter打印包UI
【发布时间】:2021-09-30 01:32:00
【问题描述】:

我正在尝试从 Flutter 打印 PDF。我通过 pub.dev 发布打印包。

https://pub.dev/packages/printing

按照示例运行应用程序后,按打印机图标按钮移动屏幕。

我正在尝试修复上面显示的另存为 PDF 部分。即使沿着班级搜索,我也找不到 UI 部分。

我注意到视图是通过 PdfPreview 类的 _print 方法切换的,但是之后我找不到在哪里制作 UI 并使其工作。

你知道制作 UI 的 dart 文件或类吗?

ma​​in.dart

import 'dart:typed_data';

import 'package:flutter/material.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:printing/printing.dart';
import 'package:http/http.dart' as http;

Future<void> main() async {
  runApp(MyApp('Printing Demo'));
}

class MyApp extends StatelessWidget {
  MyApp(this.title, {Key? key}) : super(key: key);

  final String title;

  PdfDocument? _doc;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: Text(title)),
        body: PdfPreview(
          build: (format) => _generatePdf(format, title),
        ),
      ),
    );
  }

  Future<Uint8List> _generatePdf(PdfPageFormat format, String title) async {
    final pdf = pw.Document(version: PdfVersion.pdf_1_5, compress: true);
    final font = await PdfGoogleFonts.nunitoExtraLight();

    pdf.addPage(
      pw.Page(
        pageFormat: format,
        build: (context) {
          return pw.Column(
            children: [
              pw.SizedBox(
                width: double.infinity,
                child: pw.FittedBox(
                  child: pw.Text(title, style: pw.TextStyle(font: font)),
                ),
              ),
              pw.SizedBox(height: 20),
              pw.Flexible(child: pw.FlutterLogo())
            ],
          );
        },
      ),
    );

    return pdf.save();
  }
}

【问题讨论】:

    标签: flutter dart pdf printing


    【解决方案1】:

    您无法更改打印视图 - 由系统处理。我相信这就是这个包的工作原理——它将数据发送到另一个互联网

    【讨论】:

    • 为了不使用pub.dev的包进行打印,只有通过dart实现吗?
    • 不。它不会是琐碎的。您需要检查哪些 API 使用打印服务并尝试使用 dart 重写它。
    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2016-07-12
    相关资源
    最近更新 更多