【问题标题】:Flutter Printing Package: Create pdf table with loopFlutter 打印包:使用循环创建 pdf 表
【发布时间】:2019-09-29 19:32:07
【问题描述】:

我想用“pdf”包创建一个 pdf 文档。 dart 页面上的示例运行良好:https://pub.dev/packages/pdf#-example-tab-

您可以看到该表是静态的。我想在pdf文档中创建一个动态表格。

列是不变的,但行必须是动态的。

我尝试插入一个 for() - 循环。

语法不正确。

      pdfWidget.Table.fromTextArray(context: context, data: <List<String>> [
        <String>['Date', 'PDF Version', 'Acrobat Version'],
        //.....
        //more Strings here.....
      ]),

【问题讨论】:

  • 我解决了这个问题。有人想知道解决方案吗?

标签: pdf flutter printing


【解决方案1】:

我遇到了同样的问题。 这似乎对我有用。

pdf.addPage(
  MultiPage(
    build: (context) => [
      Table.fromTextArray(context: context, data: <List<String>>[
        <String>['Msg ID', 'DateTime', 'Type', 'Body'],
        ...msgList.map(
            (msg) => [msg.counter, msg.dateTimeStamp, msg.type, msg.body])
      ]),
    ],
  ),
);

我的msgList 对象是一个自定义列表,即:List&lt;SingleMessage&gt;

【讨论】:

    【解决方案2】:

    有几种方法可以做到,我更喜欢单独填写List,比如:

    List<List<String>> salidas = new List();
    salidas.add(<String>['Title1','Title2', ... , 'Title n']);
    
    for(var indice=0;indice<records.length;indice++) {
       List<String> recind = <String>[
           records[indice].Stringfield1,
           records[indice].Stringfield2,
           ...,
           records[indice].Stringfieldn
       ];
       salidas.add(recind);
    }
    ...
    fpdf.Table.fromTextArray(context: context,data: salidas),
    

    【讨论】:

    • 它显示错误我无法将 recind 添加到 salidas,因为 salidas 显示错误“参数类型 Map 无法分配给参数类型 List
    • @kritisharma:对不起,我犯了一个错误。我只是编辑代码,这必须工作
    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 2020-09-11
    • 2011-06-04
    相关资源
    最近更新 更多