0

Мы используем фреймворк pdfMake для отображения HTML в PDF-документе.Что может заставить pdfMake игнорировать это определение?

pdfMake.org

Учитывая, что простой объект определения рабочего документа оказывается таким образом:

var docDefinition = { 
    content: { stack: [ 
     { text: 'foo', style: 'normal', margin: [0,1,0,0] }, 
     { text: 'bar', style: 'bold', margin: [0,1,0,0] } 
    ]} 
} 

И учитывая, что objectives представляет собой массив HTML-элементов, мы пытаемся разобрать указанные элементы и вернуть stack определение через функцию. Как так:

var docDefinition = { 
    content: { stack: parseSection(objectives) } 
} 

Вот значительно упрощена резюме функции:

function parseSection(section){ 

    var stack = [] 
    ... 
    str1 = "{ text:'" + fooVar + "',style: 'normal', margin: [0,1,0,0] }" 
    str2 = "{ text:'" + barVar + "',style: 'bold', margin: [0,1,0,0] }" 

    stack.push(str1) 
    stack.push(str2) 
    ... 

    return stack 

}) 

Проблема, pdfMake будет отображаться как строки дословно str1 и str2, а не обрабатывать определения.

Что еще мы можем сделать (или что еще мы можем искать) для доставки определения стека в виде массива (объекта?), Который может определить и правильно определить документ pdfMake?

ответ

0

Вы передаете строку. Вместо этого создавайте и возвращайте объекты. Например:

function parseSection(section){ 

    var stack = [] 

    obj1 = { 
     text: fooVar, 
     style: 'normal', 
     margin: [0,1,0,0] 
    } 

    obj2 = { 
     text: barVar, 
     style: 'bold', 
     margin: [0,1,0,0] 
    } 

    stack.push(obj1) 
    stack.push(obj2) 

    return stack 

})