【发布时间】:2021-11-05 06:56:04
【问题描述】:
我已使用wifip2p 插件成功发现并连接到打印机。
我想通过将 URL 或资产发送到打印机来打印 PDF 文件。
请告诉我如何在连接打印机后通过将 PDF 数据发送到打印机进行打印。感谢您回答问题。
搜索打印
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:wifip2p/wifip2p.dart';
class SearchIconButton extends StatelessWidget {
const SearchIconButton({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Stack(
children: <Widget>[
Positioned(
right: size.width * 0.02,
bottom: size.height * 0.02,
child: FloatingActionButton(
onPressed: () async{
try{
await WifiP2P.discoverDevices();
}on PlatformException{
print('Error!');
}
},
child: Icon(Icons.search),
),
),
],
);
}
}
写下打印名称
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:wifip2p/wifip2p.dart';
class WritePrintName extends StatelessWidget {
const WritePrintName({Key? key}) : super(key: key);
Future<void> conntectToDevice(int position) async{
CircularProgressIndicator();
try{
await WifiP2P.connectToDevice(position);
}on PlatformException{
print('Error!');
}
}
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Positioned(
top: size.height * 0.1,
child: StreamBuilder(
stream: WifiP2P.peerListChangeEvent,
builder: (BuildContext context, AsyncSnapshot<List<String>> snapshot){
if(snapshot.hasData){
List<Container> list = [];
for(int nIndex=0; nIndex<snapshot.data!.length; nIndex++){
list.add(Container(
width: size.width,
height: size.height * 0.05,
alignment: Alignment.center,
child: TextButton(
onPressed: (){
conntectToDevice(nIndex);
},
child: Text(snapshot.data![nIndex], textAlign: TextAlign.center,),
),
));
}
return Column(children: list,);
}
return Container(
width: size.width,
height: size.height * 0.05,
alignment: Alignment.center,
child:Text(
'검색된 프린터가 없습니다.',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
) ,
);
},
),
);
}
}
【问题讨论】:
-
您可以为此使用打印 Pkg pub.dev/packages/printing
-
打印插件有一个输出 pw.FlutterLogo() 的例子。你知道如何在此处更改为我的 pdf 吗??
-
你想在这里改变什么?
-
我的来源没有问题。它通常连接到打印机。如您所说,我使用了打印插件,但是如果您查看打印插件的示例,它会通过 page.add 创建一个文档。我想打印一份已有的 PDF。
标签: flutter dart pdf printing wifi