OfficeGen, как установить размер текста таблицы данных? - PullRequest
0 голосов
/ 26 июня 2019

Я использую officeGen для создания текстовых документов.

generateDocumentService.js

var generateReportFromTableData = function (tableData) {
  console.log('tableData: ', tableData);
 var docx = officegen({
    type: 'docx',
    orientation: 'portrait',
    pageMargins: {
      top: 1000,
      left: 1000,
      bottom: 1000,
      right: 1000
    }
  })
  docx.on('error', function (err) {
    console.log(err)
  })
  pObj = docx.createP({
    align: 'center'
  })

  pObj.addText('Business Process General Information', {
    border: 'dotted',
    borderSize: 12,
    borderColor: '88CCFF',
    bold: true
  })
  var table = [
    [
    {
      val: 'Ref',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Risk Statements',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Max Impact',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Control effectiveness',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Recommended Risk Rating',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Frequency',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Impact',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Validated Review Risk Rating',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '10',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    {
      val: 'Rational For Risk Adjustment',
      opts: {
        cellColWidth: 2000,
        b: true,
        sz: '20',
        shd: {
          fill: '7F7F7F',
          themeFill: 'Arial',
          themeFillTint: '20'
        },
        fontFamily: 'Arial'
      }
    },
    ],
    ['Ahmed', 'Ghrib', 'Always', 'Finds','A','Soulution', 'Finds','A','Soulution'],
    ['Ahmed', 'Ghrib', 'Always', 'Finds','A','Soulution', 'Finds','A','Soulution'],
    ['Ahmed', 'Ghrib', 'Always', 'Finds','A','Soulution', 'Finds','A','Soulution'],
    ['Ahmed', 'Ghrib', 'Always', 'Finds','A','Soulution', 'Finds','A','Soulution'],
    ['Ahmed', 'Ghrib', 'Always', 'Finds','A','Soulution', 'Finds','A','Soulution'],
    ['Ahmed', 'Ghrib', 'Always', 'Finds','A','Soulution', 'Finds','A','Soulution'],
  ]

  var tableStyle = {
    tableColWidth: 4261,
    tableSize: 72,
    tableColor: 'ada',
    tableAlign: 'left',
    tableFontFamily: 'Comic Sans MS',
    borders: true
  }
  pObj = docx.createTable(table, tableStyle)
  var out = fs.createWriteStream(path.join('./docs/Table Data Report.docx'))

  out.on('error', function (err) {
    console.log(err)
  })

  async.parallel(
    [
      function (done) {
        out.on('close', function () {
          console.log('Finish to create a DOCX file.')
          done(null)
        })
        docx.generate(out)
      }
    ],
    function (err) {
      if (err) {
        console.log('error: ' + err)
      } // Endif.
    }
  )
}  

Вот результат:
enter image description here

Хотя я действительно люблюВ рамках OfficeGen я не смог найти способ выбрать размер для текста внутри таблицы.Кажется, что либо они пропустили это, либо я не смог найти как.
Для заголовков столбцов таблицы это было возможно с помощью этого свойства sz в их определении:

{val: 'Ref',
  opts: {
    cellColWidth: 2000,
    b: true,
    sz: '10',
    shd: {
      fill: '7F7F7F',
      themeFill: 'Arial',
      themeFillTint: '20'
    },
    fontFamily: 'Arial'
  }
}

Но для данных внутристол, в течение нескольких дней я не мог найти способ.Ничто в определении tableStyle не указывает на способ сделать это:

  var tableStyle = {
    tableColWidth: 4261,
    tableSize: 72,
    tableColor: 'ada',
    tableAlign: 'left',
    tableFontFamily: 'Comic Sans MS',
    borders: true
  }

Любая помощь?Спасибо!
Создание текстового документа с документацией OfficeGen

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...