2017-08-21 15 views
1

私は、NodeJS/ExpressとHandlebarsを使用してテンプレート作成のためにWebアプリケーションを構築しようとする初心者です。ノードJS/Express WebアプリケーションでPDFレポートを生成

アプリケーションの一部は、売上請求書の生成を扱っています。私はいくつかのjavascriptコードと一緒にアイテムの追加/削除を処理し、正常に動作する合計などを計算するためにハンドルバーのテンプレートを書いています。

この請求書のPDFフォームは、クライアント側で追加された動的コンテンツを含むNodeJSサーバーで生成する必要があります。

これを実行するにはどうすればよいかわかりません。私はクライアントサイドのPDF生成オプションを評価しましたが、私のユースケースでは望ましくありません。

クライアントサイドのHTMLページに動的要素がある場合、サーバー側でpdfを生成できるかどうか教えてください。

アプリは、このリンクのものと似ていますコードのhttp://www.smarttutorials.net/invoice-system-using-jquery-autocomplete/

動的部分は以下の通りです:

//

var i=$('table tr').length; 
$(".addmore").on('click',function(){ 
    html = '<tr>'; 
    html += '<td><input class="case" type="checkbox"/></td>'; 
    html += '<td><input type="text" data-type="productCode" name="itemNo[]" id="itemNo_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>'; 
    html += '<td><input type="text" data-type="productName" name="itemName[]" id="itemName_'+i+'" class="form-control autocomplete_txt" autocomplete="off"></td>'; 
    html += '<td><input type="text" name="price[]" id="price_'+i+'" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>'; 
    html += '<td><input type="text" name="quantity[]" id="quantity_'+i+'" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>'; 
    html += '<td><input type="text" name="total[]" id="total_'+i+'" class="form-control totalLinePrice" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>'; 
    html += '</tr>'; 
    $('table').append(html); 
    i++; 
}); 

//が選択を削除し、余分なテーブルの行を追加します表の行

$(".delete").on('click', function() { 
    $('.case:checkbox:checked').parents("tr").remove(); 
    $('#check_all').prop("checked", false); 
}); 
+1

は、その後、(AJAX)サーバにデータを送るなど..あなたもCSS属性page-break-afterを使用して改ページを制御することができ、これはあなたがPDF年代に高いウェブページに変換するために使用することができますhttps://www.npmjs.com/package/phantom

使用しますPDFKitを使用してください。 –

+0

@Chris G:クイック返信をありがとう。これらの動的に追加された行やHTMLページ全体の唯一のデータをサーバーに送信してpdfを生成する必要があることを意味しますか? –

+0

PDFKitをチェックして、あなたに最適なルートを見つけてください。 –

答えて

1

あなたが使用しているように見え、能力を持っているこのデータを含むウェブページを作成します。

私は

+0

返信いただきありがとうございます。私はphantom-html2pdf(https://www.npmjs.com/package/phantom-html2pdf)が、このケースではCSSをサポートしているので私にとっては有益かもしれないと思います。私はそれを打ち明け、あなたにそれがどのように行ったかを知らせます。 –

+0

@UmashankarVarmaもちろん、私が指摘したファントムパッケージもCSSをサポートしています。そこでは内部的にphantomjsを使用しています。つまり、phantomjsを実行しています。基本的にファントムは、より低レベルのコントロールを提供するので、PDFを作成するだけでなく、他のものにも使用できます。例えば。ユニットテスト、スクリーンをPNGに取り込みます。 – Keith

+0

私は人形を試しました:https://www.npmjs.com/package/puppeteer。例のようにコードで期待どおりに動作します。 –

関連する問題