use*_*833 5 printing pdf flutter
我在 flutter 中使用打印包: https: //pub.dev/packages/printing
该文档展示了如何从头开始创建 PDF。我已经在 URL 上有一个 PDF。有没有办法检索它并与包裹一起打印?或者是否有其他软件包的替代方法?
我尝试了以下几种方式来实现打印功能:
var data = await http.get(url);
await Printing.layoutPdf(onLayout: (_) => data.bodyBytes);
Run Code Online (Sandbox Code Playgroud)
但我发现这种方式在打印滚筒尺寸纸张(POS打印机)时会出现打印区域错乱的问题
var data = await http.get(url);
await Printing.sharePdf(bytes: data.bodyBytes, filename: 'my-document.pdf');
Run Code Online (Sandbox Code Playgroud)
这个需要额外的步骤来打印(点击浏览器的“功能”图标然后打印)
import 'package:url_launcher/url_launcher.dart';
if (await canLaunch(url)) {
await launch(url);
}
Run Code Online (Sandbox Code Playgroud)
这个需要额外的步骤来打印(点击浏览器的“功能”图标然后打印)
var data = await http.get(url);
final output = await getTemporaryDirectory();
final file = File('${output.path}/your_file_name_${new DateTime.now().microsecondsSinceEpoch}.pdf');
await file.writeAsBytes(data.bodyBytes);
await FlutterPdfPrinter.printFile(file.path);
Run Code Online (Sandbox Code Playgroud)
*** 这个软件包会有频道注册问题,请flutter clean安装后运行***
这个软件包有点过时,但它可以让我用滚筒打印 80 尺寸的 pdf。它使用Swift UIKit包,具有良好的兼容性。
我的方案是打印无限高度的滚筒 80 尺寸的 pdf,打印包不起作用,因为它无法正确预览 pdf。所以我改成了最后一种打印方式,这对我来说很有效。如果您只是打印 A4 或常规尺寸的 PDF,打印包仍然是不错的选择。
来自插件文档要使用 path_provider 库保存 pdf 文件:
final output = await getTemporaryDirectory();
final file = File("${output.path}/example.pdf");
await file.writeAsBytes(pdf.save());
Run Code Online (Sandbox Code Playgroud)
使用 iOS 或 Android 打印服务打印文档
await Printing.layoutPdf(
onLayout: (PdfPageFormat format) async => pdf.save());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5075 次 |
| 最近记录: |