2016-02-11 13 views
10

html dosyasını PDF'e dönüştürmek için this kullanıyorum. Dönüşümler gerçekten çok iyi. Ama sorun PDF sayfalarına üstbilgi ve altbilgi eklemek.Ama eklediğim takdirde seçenekler başlık metni beklediğim sonucu aldım.Html-pdf düğüm modülünü kullanarak üstbilgi resmi ekleyin

//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(); 
     } 

Sonra ben başlığındaki resim etiketi eklerseniz (içindekiler) seçeneği ı oluşturulan PDF formatında görüntü alamadım. Bu teşekkürler için bana bir çözüm sunabilir misiniz? github this issue için atıfta bulunularak

cevap

9

seçenekler başlığındaki resim eklemek mümkündür. 1. "Ekran: none" stili ile görüntüyü html gövdesinde yükleyin. 2.Daha sonra seçenek başlığındaki görüntüyü ekleyin Bunu yaparak görüntü önbelleğe alınır ve görüntü üstbilgiye eklenebilir. Eğer html oluşturulan ve package.But iletecek olan İşte Cevabınız için

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

Teşekkürler:). Bir çekicilik gibi iş .. Bu beklediğim şey .... Çok teşekkürler – venkats

+0

Bu çözüm html-pdf değil html için pdf için değil .... – Rahul

1

, sen options.header doğrudan görüntünüzü koyamazsınız, bir <div id="pageHeader"></div> içine vücutta koymak zorunda: Bu kod ile

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); 
    } 
}); 

, bu pdf olsun:

generated pdf

+0

Teşekkürler ... i (hepsi oluşturulan PDF'leri çoğaltmak devam etmiş olacağız) seçenekleri başlığından .bu görüntüsünü ayarlamak gerekir o set görüntüyü seçenekler başlığından yapmak mümkün mü? – venkats

+0

Kendime otomatik alıntılama: * resminizi doğrudan options.header * içine koyamazsınız. Bir değişkene '

' kodunu saklayabilir ve tüm pdf'larınızın gövdesine ekleyebilirsiniz. – Shanoor

+0

Yani, her sayfanın html formatında görüntüye sahip olmalıyız.Ama yine de metinler seçenekler üstbilgisinde tekrarlanabilir. – venkats

İlgili konular