如何使用fillColor填充pdfmake的列背景颜色?

时间:2015-02-27 11:34:07

标签: javascript pdf pdf-generation pdfmake

是否有任何选项可以使用fillColor: '#dedede'填充列背景颜色? fillColor 非常适用于tablecell,同时它不适用于列:(



<script src="https://rawgit.com/bpampuch/pdfmake/master/build/vfs_fonts.js"></script>
<script src="https://rawgit.com/yelouafi/pdfmake/master/build/pdfmake.js"></script>
<script>
  function print(argument) {
    // open the PDF in a new window
    pdfMake.createPdf(docDefinition).open();
  }
</script>
<button onclick="print()" style="display:block; margin: 10px auto;padding: 20px 50px;">Print</button>
<hr>
<script>
  var docDefinition = {
    content: [
      'This paragraph fills full width, as there are no columns. Next paragraph however consists of three columns', {
        columns: [{
          // auto-sized columns have their widths based on their content
          width: 'auto',
          text: 'First column',
          fontSize: 30,
          fillColor: '#dedede'
        }, {
          // star-sized columns fill the remaining space
          // if there's more than one star-column, available width is divided equally
          width: '*',
          text: 'Second column'
        }, {
          // fixed width
          width: 100,
          text: 'Third column'
        }, {
          // percentage width
          width: '10%',
          text: 'Last column'
        }],
        // optional space between columns
        columnGap: 10
      },
      'This paragraph goes below all columns and has full width'
    ]
  };
</script>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:5)

我还没有将背景颜色应用于列。我认为你唯一的选择是使用表格。

在这一行之后,我附上了一个简单的代码,您可以直接在pdfmake playground粘贴以便尝试。

祝你好运!

    var dd = {
    content: [
        'This paragraph fills full width, as there are no columns. Next paragraph however consists of three columns', 
        {
            style: 'section',
            table: {
                widths: [ '15%',  '*',  '35%'],
                body: [
                    [ 
                        {
                          text: 'first column',
                          fillColor: '#555555',
                          color: '#00FFFF',
                        },
                        {
                          text: 'second column',
                          color: '#555555',
                          fillColor: '#dedede'
                        },
                        {
                          text: 'third column',
                          fillColor: '#555555'
                        }
                    ]
                ]
            },
            layout: 'noBorders'
        }
    ],
    styles: {
        section: {
            fontSize: 9,
            color: '#FFFFFF',
            fillColor: '#2361AE',
            margin: [0, 15, 0, 5]
        }
    },
    defaultStyle: {
        alignment: 'center'
    }
}

答案 1 :(得分:0)

使用表格包装内容

设置一个具有一个单元格且没有边框的表格,并使用fillColor设置背景。

var docDefinition = {
  content: [
  {
    table: {
      headerRows: 0,
      body: [
        [{
            // Choose your color
            fillColor: '#bada55',
            // Remove distasteful border
            border: [false, false, false, false],

            // Columns/Whatever goes here
            columns: [{
              // auto-sized columns have their widths based on their content
              width: 'auto',
              text: 'First column',
              fontSize: 30,
              fillColor: '#dedede'
            }, {
              // star-sized columns fill the remaining space
              // if there's more than one star-column, available width is divided equally
              width: '*',
              text: 'Second column'
            }, {
              // fixed width
              width: 100,
              text: 'Third column'
            }, {
              // percentage width
              width: '10%',
              text: 'Last column'
            }],
            // optional space between columns
            columnGap: 10
          },
          'This paragraph goes below all columns and has full width'
        ]

        }],
      ]
    }
  },
};

这使我回到使用表格来设置互联网样式的年代。 如果没有其他方法支持填充颜色属性,则将其包装在支持颜色的属性中;一张桌子。