【问题标题】:Flutter create PDF from rest APIFlutter 从 REST API 创建 PDF
【发布时间】:2021-10-09 10:31:14
【问题描述】:

我有一个从 mysql DB 获取库存的 api。它可以很好地构建一个 listView。但是对于这个应用程序,我需要使用从数据库中获得的值创建一个 PDF,老实说,我不知道该怎么做......

我正在使用 pdf 包。我可以创建 PDF,但我不知道如何填写。

这是我的 API 调用函数:

Future<List> getInventory(String _refToSearch) async {
    String urlQuery = "";
    if (isFromScan == false) {
      urlQuery = "http://*****/getinventory.php";
      final res = await http.get(Uri.parse(urlQuery));
      return jsonDecode(res.body);
    } else {
      urlQuery = "http://*****/getinventorybyref.php";
      Response res =
          await Dio().get(urlQuery, queryParameters: {"ref": _refToSearch});
      return jsonDecode(res.data);
    }
  }

感谢您的帮助

【问题讨论】:

    标签: flutter api pdf


    【解决方案1】:

    我使用此方法从 Rest API 保存了 PDF

      Future bioringPdf(String calType) async {
        //get pdf from link
        var dio = Dio();
        // String ManualTechnique = 'Incision depth : ${widget.result['ManualTechnique'].toString()}';
        // String FemtoTechnique = 'Tunnel depth : ${widget.result['FemtoTechnique'].toString()}';
        Response response = await dio.post(
          "https://biotechcalculators.com/apicall/bioring.php",
    
          data: {
            "generate_pdf": "yes",
            "thickest_model_code": "",
            "calculation_id": cal.cal_id,
            "lns_img": cal.lens_image
          },
    
          
          options: Options(
              responseType: ResponseType.bytes,
              followRedirects: false,
              validateStatus: (status) {
                return status < 500;
              }),
        );
        String path = await ExtStorage.getExternalStoragePublicDirectory(ExtStorage.DIRECTORY_DOWNLOADS);
        String fullPath = "$path/$calType ${widget.cal_id}.pdf";
    
        //write in download folder
        File file = File(fullPath);
        var status = await Permission.storage.status;
        if (!status.isGranted) {
          await Permission.storage.request();
        }
        var raf = file.openSync(mode: FileMode.write);
        raf.writeFromSync(response.data);
        await raf.close();
        pdfValidatePopop(context, "PDF have been successfully saved in device");
      }
    

    根据您的要求更改 Body 和其他数据

    【讨论】:

      猜你喜欢
      • 2019-03-22
      • 2021-07-27
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 2017-10-12
      • 2021-10-09
      相关资源
      最近更新 更多