我当前flutter版本是1.22.6版本 使用的pub.dev的 pdf 插件和 print插件分别如下,请在pubspec.yaml导如下插件

printing: 4.1.0
pdf: 2.1.0

导入以后为实现打印预览pdf和打印功能,我根据Flutter PDF Demo 里右下角查看了示例代码,发现需要主函数才能运行,于是我更改如下示例代码

import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:printing/printing.dart';
import 'package:warehouse_management/ui/GradientAppBar.dart';void main() => runApp(const MyApp('打印详情'));class MyApp extends StatelessWidget {const MyApp(this.title);final String title;@overrideWidget build(BuildContext context) {return MaterialApp(home: Scaffold(appBar: AppBar(title: Text(title),centerTitle: true,),body: PdfPreview(build: (format) => _generatePdf(format, title),),),);}Future<Uint8List> _generatePdf(PdfPageFormat format, String title) async {final pdf = pw.Document(pageMode: PdfPageMode.fullscreen,theme: pw.ThemeData.withFont(base: pw.Font.ttf(await rootBundle.load("images/fonts/alibabapuhui.ttf"))));pdf.addPage(pw.MultiPage(pageFormat:PdfPageFormat.letter.copyWith(marginBottom: 1.5 * PdfPageFormat.cm),crossAxisAlignment: pw.CrossAxisAlignment.start,header: (pw.Context context) {if (context.pageNumber == 1) {return pw.SizedBox();}return pw.Container(alignment: pw.Alignment.centerRight,margin: const pw.EdgeInsets.only(bottom: 3.0 * PdfPageFormat.mm),padding: const pw.EdgeInsets.only(bottom: 3.0 * PdfPageFormat.mm),decoration: const pw.BoxDecoration(border: pw.Border(bottom:pw.BorderSide(width: 0.5, color: PdfColors.grey))),child: pw.Text('测试',style: pw.Theme.of(context).defaultTextStyle.copyWith(color: PdfColors.grey)));},footer: (pw.Context context) {return pw.Container(alignment: pw.Alignment.centerRight,margin: const pw.EdgeInsets.only(top: 1.0 * PdfPageFormat.cm),child: pw.Text('Page ${context.pageNumber} of ${context.pagesCount}',style: pw.Theme.of(context).defaultTextStyle.copyWith(color: PdfColors.grey)));},build: (pw.Context context) => <pw.Widget>[pw.Header(level: 0,title: '测试',child: pw.Row(mainAxisAlignment: pw.MainAxisAlignment.spaceBetween,children: <pw.Widget>[pw.Text('绣花裁片物料单', textScaleFactor: 2),pw.PdfLogo()])),pw.Text('传票号', softWrap: true),pw.Container(alignment: pw.Alignment.centerRight,child: pw.Column(children: [pw.BarcodeWidget(data: '我是张坤',width: 60,height: 60,barcode: pw.Barcode.qrCode(),),pw.SizedBox(height: 20),pw.Text("扫码查看记录快照")]),),pw.SizedBox(height: 10),pw.Text('二维码名称:绣花裁片物料单       填表人:张三     填表时间:2021-03-10 14:33',softWrap: true),pw.SizedBox(height: 10),pw.Table.fromTextArray(headerCount: 0,context: context,data: const <List<String>>[<String>['厂家','泳装分厂',],<String>['车间','泳装分厂',],<String>['合同号','025k',],<String>['货号','0254689-25',],<String>['部位','后片',],<String>['颜色','001',],<String>['规格','xl',],<String>['数量','280',],<String>['日期','2021-03-10',],<String>['时间','14:33',],]),pw.Padding(padding: const pw.EdgeInsets.all(10)),]));return pdf.save();}
}

可以预览以后发现不能使用中文预览,需要配合导入文字ttf,此代码已经在上方了,我下的文字ttf是阿里的普惠字体应用授权 ,阿里需要注册以后才能使用下载,你也可以使用其他ttf免费字体,字体导入如下文件夹,比如我的

重点:需要在 pubspec里配置font

  fonts:- family: AlibabaFontfonts:- asset: res/fonts/alibabapuhui.ttf

然后就可以run 起来了,以下是运行后的图片

flutter pdf 插件使用相关推荐

  1. JS导出PDF插件(支持中文、图片使用路径)

    JS导出PDF插件(支持中文.图片使用路径) 原文:JS导出PDF插件(支持中文.图片使用路径) 在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfma ...

  2. js导出生成PDF插件

    js导出生成PDF插件[jsPDF] 插件官网:http://parall.ax/products/jspdf 浏览器支持: Browser Compatibility jsPDF will work ...

  3. 【Flutter】插件包选择 ( 查看文档是否全面 | 查看插件包的更新版本次数 | 查看使用示例 | 查看 GitHub 项目的 Star Fork Issues )

    文章目录 一.插件包选择 二.查看文档是否全面 三.查看插件的更新版本次数 四.查看使用示例 五.查看 GitHub 项目的 Star Fork Issues 一.插件包选择 开发 Flutter 时 ...

  4. 【Flutter】Flutter 开发环境搭建 ( Android Studio 下 Flutter / Dart 插件安装 | Flutter SDK 安装 | 环境变量配置 | 开发环境检查 )

    文章目录 一.Flutter 学习资料 二.Flutter 开发环境搭建 三.Android Studio 环境安装 Flutter / Dart 插件 四.下载 Flutter SDK 五.设置 F ...

  5. flutter 推荐插件:path_provider

    flutter 推荐插件:path_provider path_provider是一个Flutter插件,用于获取主机平台文件系统上常用的位置,如temp和app数据目录. 作者: jcLee95 邮 ...

  6. 最佳阵容 | Flutter Firebase 插件更新

    作者 / Chris Sells, Flutter 开发者体验产品经理 Flutter 不仅是一个引擎.一套 widget 和一些工具,它还包括一个庞大的 package 生态系统,让应用得以实现远多 ...

  7. 引用pdf插件在线预览的问题

    引用pdf插件在线预览带中文名称文件报错解决 解决 由图可知插件pdf.js在解析带有中文的pdf文件时出现乱码问题 直接去改pdf.js比较麻烦且不好改,我们可以在预览pdf时候这么定义: Prin ...

  8. flutter常用插件

    学习资料 https://marcinszalek.pl/ 简书1 :https://www.jianshu.com/p/9e5cc4ba3a8e 掘金布局:https://juejin.im/pos ...

  9. android pdf 插件,Pdf文件查看 android原生插件

    更新记录 1.0.7(2021-05-10) 1.修复若干bug 2.优化用户体验 1.0.6(2021-03-31) 1.全新UI设计 2.增加目录设置功能 3.增加全屏切换功能 4.增加跳转功能 ...

  10. office转成PDF插件

    office转成PDF插件 微软将Office2007 可将文件输出为PDF格式,不过需要安装2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS ...

最新文章

  1. 再论JavaScript原型继承和对象继承
  2. 数据挖掘系列(1)关联规则挖掘基本概念与Aprior算法
  3. 06jQuery-01-基本选择器
  4. 怎么修改谷歌浏览器文件提交按钮样式_使用css自定义input file浏览按钮样式
  5. es7 async 前置依赖
  6. linux下rocksdb的编译安装
  7. typedef使用方法
  8. 扩展 MQL5 标准库和重用代码
  9. java下载服务器资源
  10. 计算机视觉知识点-人脸对齐
  11. 转载ios开发如何使用Xcode的Targets来管理开发和生产版本的构建
  12. MySQL从创建数据库到删库跑路之旅
  13. How to change Intel WiFi Link 5100 AGN MAC addr(更改Intel WiFi Link 5100 AGN MAC地址)
  14. 【IT职场】如何成为T型甚至A型人物。
  15. adi翻译_ADI是什么意思_ADI的翻译_音标_读音_用法_例句_爱词霸在线词典
  16. 仿微信发送位置(高德地图定位)
  17. 计算机等级证书中级是个什么级别呢
  18. 牛客网华为机试题(JavaScript)
  19. Google Play Store 应用无法安装解决方案
  20. 傻瓜式免费自助建站系统,菜鸟建站理想工具

热门文章

  1. C++ 应用程序无法正常启动0xc000007b
  2. python代码画微信标志图片_Python 一键制作微信好友图片墙
  3. 红警2020版笔记本芯片级维修教材(含军工级)
  4. android ibeacon service,android – iBeacon后台扫描
  5. 数据库cosc2406-2407辅导week10-quiz-Transactions and Concurrency
  6. php7 slowlog,php7: php-fpm seems busy提示
  7. The project seems to require yarn but it‘s not installed解决办法
  8. Android存储管理
  9. DIS全球首款基于数字资产证券化交易生态系统
  10. 在线qq的html代码,网页QQ