html to pdf подходит для таблицы на A4 - PullRequest
0 голосов
/ 18 июня 2019

я сейчас использую html-pdf , который берет мои данные таблицы и превращает их в pdf.

Моя проблема заключается в том, что содержимое таблицы перекрывает требуемый A4 размер бумаги таким образом, что в pdf полностью отсутствует 2 столбца, когда я меняю format до A3 подходит и работает.

Мне это нужно для A4, чтобы соответствовать. Есть идеи?

const dlPdfResult = (result) => {
  return new Promise(function (resolve, reject) {
    optionsType = {
      format: 'A4',
      orientation: 'landscape',
      paginationOffset: 0,
      header: {
        'height': '10mm',
        'contents': `<div style=' font-family: sans-serif, Arial, Helvetica; font-size: 11px; text-align: left;  width: 842px; overflow: hidden;'><div style='width: 10%; float:left;'></div><div style='width: 40%; float:left;padding: 0px 0px 0px 60px;'>Port2Port exports</div><div style='width: 40%; float:left; text-align: right;'>Logo</div><div style='width: 10%; float:left;'></div>`
      },
      footer: {
        'height': '10mm',
        'contents': {
          first: '1',
          2: '2',
          default: '<span style="color: #444;">{{page}}</span>/<span>{{pages}}</span>',
          last: 'Last Page'
        },
        type: 'pdf', // allowed file types: png, jpeg, pdf
        quality: '75'
      }
    }
    tableForm = tableify(result)

    pdf.create(tableForm, optionsType).toFile('./test.pdf', function (err, res) {
      if (err) return reject(err)
      resolve(res)
    })
  })
}

1 Ответ

0 голосов
/ 18 июня 2019

В данный момент мое единственное исправление - заменить результаты таблицы, которые я получаю, и добавить к ним стили, используя mm и присвоив ему max-width.

только один пример будет:

tableForm = tableify(result)

strip = tableForm.replace(/<td/g, `<td style='max-width: 5mm;border: 1px solid #000;overflow: hidden;word-wrap: break-word;'`)

Я сделал это для всех td и всех th.

поэтому моя следующая замена выглядела так:

var addStyleSpacingThString = strip.replace(/<th class="string">/g, `<th class='string' style='max-width: 5mm;text-align: left;'>`)

Это работает со всем моим контентом. Последнее, что я хочу упомянуть, это то, что моя таблица имеет ширину 100%.

<table style=' width: 100%; heigth: auto;font-size: 11px;font-family: sans-serif, Arial, Helvetica; border-collapse: collapse;'>

...