flutter 下载文件的按钮

wdebmtf2  于 6个月前  发布在  Flutter
关注(0)|答案(1)|浏览(84)

我在flutter web中做了这个代码

ElevatedButton(
                  onPressed: () async {
                    downloadFile("/Users/aaa/Desktop/a.pdf");
                  },
                  child: Text('Platform-specific Button'),
                ): Text('Button not supported on web')
                ],

...

downloadFile(url){
  AnchorElement anchorElement = new AnchorElement()
  anchorElement.download = "jjjjjj.pdf";
  anchorElement.click();
}

字符串
用于单击时从文件系统下载文件的按钮。
问题是我得到的文件jjjjjj.pdf是HTML代码,而不是我期望的PDF。

rbpvctlc

rbpvctlc1#

请看一下这个软件包,它可能会帮助你解决这个问题。这是我如何制作一个pdf供下载。你可能想跳过截图部分。

import 'package:open_filex/open_filex.dart';
import 'package:path_provider/path_provider.dart';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;

...

// the onPressed event you call

Future<void> saveScreenShotAsPdf(BuildContext context, Uint8List 
    screenshotBytes) async {

    final pdf = pw.Document();
    pdf.addPage(
    pw.Page(
        pageFormat: PdfPageFormat.a4,
        build: (pw.Context context) {
            return pw.Center(
                child: pw.Image(
                       pw.MemoryImage(screenshotBytes),
                       fit: pw.BoxFit.contain,
                    ),
                );
            },
        ),
    );

    final directory = await getTemporaryDirectory();
    final path = '${directory.path}/your_file.pdf';
    final File file = File(path);
    await file.writeAsBytes(await pdf.save());
    await OpenFilex.open(file.path);
}

字符串
我希望这能帮上忙。

相关问题