html-pdfを使用して、帆、ejs、角で作成した見積もりをpdfに保存して顧客に送信したいと考えています。CSSのhtml-pdfに関する問題
.ejsファイル(ビューフォルダ)とその割り当て.jsコントローラ(assetsフォルダ)を使用すると、ユーザーは見積もりを作成し、顧客を選択し、商品を追加し、最終的に見積もりの合計を計算することができます。すべてのデータは角度で結合されています。 私はCSSのためにbootstrap.min.cssとimporter.cssファイルを使用しています。
いつ見積もりが完了すると、顧客に見積もりをする必要のないセクションがすべて削除され、アセットコントローラがAPIを呼び出す(PDFで保存する) PDFを生成するコントローラ。ここで
は私の資産/のJS /コントローラのコードです:
$scope.printPdf = function() {
$http.post('/page/create-pdf', {
printView: document.getElementById('printPdfSection').innerHTML,
quoteNumber: $scope.createdQuote.createdAt,
})
.then(function onSuccess(sailsResponse){
console.log('PDF CREATED');
})
.catch(function onError(sailsResponse){
console.error('PDF ERROR :', sailsResponse);
});
};
そして、ここでは私のAPI /コントローラのコードです:
printPdf: function(req, res) {
var pdf = require('html-pdf');
var moment = require('moment');
var fs = require('fs');
var quoteNumber = moment(req.param('quoteNumber')).format('YYMMDDHHmm');
var html = req.param('printView');
var options = {
format: 'Letter',
border: {
"top": "1in", // default is 0, units: mm, cm, in, px
"right": "1in",
"bottom": "1in",
"left": "1in"
},
base: req.protocol + '://' + req.get('host'),
};
pdf.create(html, options).toFile('./assets/pdfs/'+ quoteNumber +'.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res);
});
}
私は基本オプションOK現れ絵を持っている必要があります私のCSSを得ることができるが、それはない...任意のアイデア?
編集:
私は自分のCSSを私のHTMLの前に送信しています。私は今、2つの問題を持っています
var myCSS = '<link rel="stylesheet" href="/styles/bootstrap.min.css"><link rel="stylesheet" href="/styles/importer.css">';
$http.post('/page/create-pdf', {
printView: myCSS + document.getElementById('printPdfSection').innerHTML,
...
...
の1-グリッドがOK見せているが、私のdivタグが境界線と背景色を持っており、彼らが表示されていない、私はについて何かを見たと思います@私は本当にそれを使用したことがないので、ここで何が間違っているのかは分かりません。
2 PDFですべての画像(グリッドレイアウトの表示)がうまくいけば、ヘッダーとして使用したいセクションのdivタグにid = "pageHeader"を追加しました。私はそれを試して、セクションは、画像やグリッドの表示を表示していません...私のhtmlは私のブラウザで右に表示されているので、私はあなたのCSSを混乱させないためにpageHeader idで他の何かをしなければなりませんか?
私はhtml-pdfの例から、htmlのスタイルタグだけがうまくいくように見えます。これは、角度アプリの現在の状態を取得するのはかなり難しいです!必要なのは、アクティブなページの現在の状態からスタイルタグを作成し、それをサーバーに送る前に追加するコードまたはライブラリです。 – arbuthnott
まあ、私は自分のCSSを手動でHTMLの前に自分のスタイルタグを追加することによって管理し、それは働いています。しかし、私のdivブロックの背景色は表示されません.... – StS