2016-12-06 24 views
0

pdfkitのオーダーアイテムでPDFドキュメントを作成したいとします。pdfkitのループを使用してテキストを追加する方法

だから私はこの方法のように、購入者と送信者のようないくつかの情報を持つPDF文書作成:

doc = new pdf({autoFirstPage: false}); 
doc.addPage({ 
    margin: 50 
}); 
doc.text(shipTo.name, 50); 
doc.moveDown(0.5); 
doc.text(shipTo.address + " " + shipTo.number + shipTo.addition ? shipTo.addition : ""); 
doc.moveDown(0.3); 
doc.text(shipTo.zip) 
doc.moveDown(0.3); 
doc.text(shipTo.city); 
doc.moveDown(0.3); 
doc.text(shipTo.country); 

をしかし、今、私は注文した製品に関するいくつかの情報を表示したいです。私はorder.itemsを通してループを作成しました。これも製品コレクションを見ていますが、PDFには何も表示されませんが、コンソールには印刷する必要がある情報が表示されます。

for(var i = 0; i < order.items.length; i++){ 
    var item = order.items[i]; 
    Product.findOne({_id: order.items[i].productId}).exec(function(err, product){ 
     console.log(item.name, item.quantity, product.eanCode); 
     doc.moveDown(); 
     doc.text(item.name, 50); 
     doc.moveUp(); 
     doc.text(product.eanCode, 300); 
     doc.moveUp(); 
     doc.text(item.quantity, 500); 
    }) 
} 

これを取得するにはどのようなアイデアがありますか?

答えて

0

あなたはorder.itemsのあなたのキーである名前が必要だと思うので、あなたのorder.itemsにあるものを表示できますか?

は、例えばのために少しの明確化

のためのあなたの配列を表示: - ここに

var arr = ["foo","moo","bar","xyz","abc"]; 

    var margin = 150; 
    var serialNo = 1; 
    for(var i=0; i<arr.length ; i++){ 
     doc.text(serialNo++,50,margin) 
     doc.text(arr[i],100,margin) 
     margin = margin + 20; 
    } 

は、あなたが参照できる簡単な例..です:)

関連する問題