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 

}) 
相關問題