2016-02-11 11 views
10

मैं एचटीएमएल को पीडीएफ में कनवर्ट करने के लिए this का उपयोग कर रहा हूं। रूपांतरण वास्तव में अच्छे हैं। लेकिन समस्या पीडीएफ पृष्ठों में हेडर और पाद लेख जोड़ना है। विकल्पों में अगर मैं जोड़ता हूं हेडर टेक्स्ट मुझे परिणाम मिला जो मुझे उम्मीद थी।एचटीएमएल-पीडीएफ नोड मॉड्यूल का उपयोग करके हेडर में छवि जोड़ें

//Options 

    var options = { 
    "header": { 
     "height": "45mm", 
     "contents": "<div style='text-align: center;'>Author: Marc Bachmann</div>" // If i add image in content it wont work 
    // sample i tried 
     }, 
     "footer": { 
     "height": "28mm", 
     "contents": "<span style='color: #444;'>{{page}}</span>/<span>{{pages}}</span>" 
     } 
    } 
// Tried this in contents <img src="image path" /> 
    var result = <div class="container"> HTML CONTENT</div>'; 

     pdf.create(result, options).toFile(fileName + ".pdf", function(err, res) { 
     if (err) { 
     console.error(err); 
     callback(); 
     } 

फिर यदि मैं हेडर (सामग्री) विकल्प में छवि टैग जोड़ता हूं तो मुझे जेनरेट किए गए पीडीएफ में छवि नहीं मिली। क्या आप कृपया मुझे इस धन्यवाद के लिए समाधान दे सकते हैं।

उत्तर

9

यह विकल्प शीर्षक में छवि जोड़ने के लिए संभव है। 1. एचटीएमएल बॉडी में छवि को "डिस्प्ले: कोई नहीं" शैली के साथ लोड करें। 2. फिर विकल्प शीर्षलेख में छवि जोड़ें ऐसा करके छवि कैश की गई है और छवि को हेडर में संलग्न कर सकती है।

var options = { 
    "format": 'Letter', 
    "orientation": "portrait", 
    "header": { 
    "contents": "<img src='image path' />", 
     "height": "30mm" 
    }, 
    "footer": { 
    "contents": footer 
    } 
} 
pdf.create("<div style='display:none'><img src='image path' /></div>", options).toFile("sample.pdf", function(err, res) { 
     if (err) { 
       console.error(err); 
       callback(); 
     } 
}); 
+0

धन्यवाद:)। यह एक आकर्षण की तरह काम .. यह वही है जो मुझे उम्मीद थी .... बहुत बहुत धन्यवाद – venkats

+0

यह समाधान एचटीएमएल-पीडीएफ के लिए नहीं है लेकिन एचटीएमएल के लिए पीडीएफ .... – Rahul

1

GitHub पर this issue की बात कर रहा है, तो आप अपनी छवि को सीधे options.header में डाल सकते हैं, तो आप एक <div id="pageHeader"></div> अंदर शरीर में डाल दिया है:

var pdf = require('html-pdf'); 
var path = require('path'); 

// this is very important, you have to put file:// before your path 
// and normalize the resulting path 
var imgSrc = 'file://' + __dirname + '/350x120.png'; 
imgSrc = path.normalize(imgSrc); 
// or var imgSrc = path.join('file://', __dirname, '/350x120.png'); 

// Options 
var options = { 
    "header": { 
     "height": "45mm", 
     "contents": "" 
    }, 
    "footer": { 
     "height": "28mm", 
     "contents": "<span style='color: #444;'>{{page}}</span>/<span>{{pages}}</span>" 
    } 
    } 
// put your entire header here and the content of the page outside the <div id="pageHeader"></div> 
var result = "<div id='pageHeader'><img src='" + imgSrc + "' /><div style='text-align: center;'>Author: Marc Bachmann</div></div>"; 
result += "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit.</p>"; 
var fileName = __dirname + '/test.pdf'; 
pdf.create(result, options).toFile(fileName, function(err, res) { 
    if (err) { 
    console.error(err); 
    } 
}); 

इस कोड के साथ, मैं इस पीडीएफ मिलती है:

generated pdf

+0

आपके उत्तर के लिए धन्यवाद ... यहाँ आप एचटीएमएल बनाया है और वह package.But को पारित कर रहे हैं मैं तो विकल्प हैडर से (तो यह है कि यह सब उत्पन्न pdfs दोहराने जाएगा) छवि स्थापित करने की आवश्यकता क्या विकल्प सेट हेडर से सेट छवि को करना संभव है? – venkats

+0

स्वयं को उद्धृत करना: * आप अपनी छवि सीधे विकल्पों में नहीं डाल सकते हैं। शीर्षलेख *। आप एक चर में '

' स्टोर कर सकते हैं और इसे अपने सभी पीडीएफ के शरीर में जोड़ सकते हैं। – Shanoor

+0

तो हमारे पास प्रत्येक पृष्ठ के लिए HTML में छवि होना चाहिए? लेकिन फिर भी विकल्प हेडर में टेक्स्ट दोहराया जा सकता है। – venkats

संबंधित मुद्दे