0

我们使用pdfMake JavaScript框架将HTML呈现为PDF文档。什么原因会导致pdf忽略这个定义?

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 

}) 
相关问题