Flutter Printing Package:使用循环创建pdf表

时间:2019-09-29 19:32:07

标签: pdf flutter printing

我想使用“ pdf”包创建一个pdf文档。飞镖-页面上的示例运行正常: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.....
      ]),

2 个答案:

答案 0 :(得分:0)

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

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<SingleMessage>

答案 1 :(得分:0)

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

List<List<String>> salidas = new List();
salidas.add(<String>['Title1','Title2', ... , 'Title n']);

for(var indice=0;indice<records.length;indice++) {
   var recind = {
    'field1': records[indice].Stringfield1,
    'field2': records[indice].Stringfield2,
    ...
    'fieldn': records[indice].Stringfieldn
};
salidas.add(recind);
}
...
fpdf.Table.fromTextArray(context: context,data: salidas),