Dynami c pdf с использованием pdfmake в реакции - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь сделать динамический c pdf с помощью pdfMake в reactjs. Я могу сгенерировать PDF из данных stati c. Чтобы сделать его динамическим c, я создал функцию, которая принимает параметры, которые дополнительно устанавливают переменные объекта pdfMake. Однако, когда я обращаюсь к объекту, объект не обновлялся.

Пример кода для объекта и функции pdfMake (образец объекта не заполнен)

import { logo} from './pdf-logo';
var receipt_number=null;
var date_issued=null;
var status=null;

export const setDefinition=(id,created_date,invoice_status)=>
{
  receipt_number=id;
  date_issued=created_date;
  status=invoice_status;
  return dd;
}


var  dd = {
  content: [
    {
      columns: [
        {
          image: logo,
          width: 150,
        },
        [
          {
            text: 'Receipt',
            color: '#333333',
            width: '*',
            fontSize: 28,
            bold: true,
            alignment: 'right',
            margin: [0, 0, 0, 15],
          },
          {
            stack: [
              {
                columns: [
                  {
                    text: 'Receipt No.',
                    color: '#aaaaab',
                    bold: true,
                    width: '*',
                    fontSize: 12,
                    alignment: 'right',
                  },
                  {
                    text: receipt_number, //vaiable used
                    bold: true,
                    color: '#333333',
                    fontSize: 12,
                    alignment: 'right',
                    width: 100,
                  },
                ],
              },
              {
                columns: [
                  {
                    text: 'Date Issued',
                    color: '#aaaaab',
                    bold: true,
                    width: '*',
                    fontSize: 12,
                    alignment: 'right',
                  },
                  {
                    text: date_issued, //variable used
                    bold: true,
                    color: '#333333',
                    fontSize: 12,
                    alignment: 'right',
                    width: 100,
                  },
                ],
              },
              {
                columns: [
                  {
                    text: 'Status',
                    color: '#aaaaab',
                    bold: true,
                    fontSize: 12,
                    alignment: 'right',
                    width: '*',
                  },
                  {
                    text: status, //vaiable used
                    bold: true,
                    fontSize: 14,
                    alignment: 'right',
                    color: 'green',
                    width: 100,
                  },
                ],
              },
            ],
          },
        ],
      ],
    }
};

Я импортирую функцию setDefinition в свой компонент счета-фактуры и назовите его некоторыми значениями. Например.


let obj=setDefinition('123345','10 July 2020','Paid');
cosole.log(obj)//not getting the updated object

1 Ответ

0 голосов
/ 08 августа 2020

Я нашел способ сделать объект dd динамическим c. мы должны разбить объект dd на более мелкие объекты, а затем обновить значение более мелких объектов.

например:


function update=(value){
logo.width=value;
return dd;
}

var logo={
width:'50'
}

var dd={
logo
}

...