6

そこにはたくさんのライブラリがあることは知っていますが、私のシナリオと完全に一致するものはないようです。そこで、何かアドバイスを頂けたらと思います...

テクノロジー: バックエンドには Express.js で Node.js を使用し、フロントエンドには html/css/js を使用しています。ブラウザのサポートは、IE8 以降、chrome、FF、およびその他の最新のブラウザです。

私がする必要があるのは、ユーザーがクリックするための「to pdf」ボタンを用意することです。これにより、DOM のチャンクが pdf に変換されます。この DOM の html のチャンクは、バックエンドが別のアプリへの API 呼び出しを行うときに動的に生成されます。CSS は静的です。

これら以外にも、平文データを第三者などに送信する必要がない限り、やりたいことを自由に行うことができます。

それを行うための推奨される方法はありますか?


更新: wkhtmltopdf を調べる

4

2 に答える 2

5

基本的に、これは私がやったことです

console.log("before");
fs.writeFile(html_filename, html, function (err) {
  if (err) {res.writeHead(400); res.end("" + err); return;}

  console.log("wrote html fine; now converting");
  exec('wkhtmltopdf ' + html_filename + ' ' + pdf_filename, function (err, stdout, stderr) {
    if (err) {res.writeHead(400); res.end("" + err); return;}

    console.log("converted; now reading");
    fs.readFile(pdf_filename, function (err, data) {
      if (err) {res.writeHead(400); res.end("" + err); return;}

      console.log("read fine; now serving");
      res.writeHead(200, {"content-type" : "application/pdf"});
      res.end(data);
    });
  });
});

ファイルを作成し、変換してから提供し、最後に2つを削除する必要があるため、IMOは少し醜いです。ここでスケーラビリティの問題が疑われます。また、wkhtmltopdf は osx ではうまく動作しないようです。ただし、Linuxではそのような問題はありません。

于 2012-08-01T00:21:51.630 に答える
0

wkhtmltopdf を試してください。Ruby on Rails のドライバーの現在の実装を簡単に確認し、それをノードとエクスプレスに適用できます。基本的にコマンド ライン アプリを呼び出すと、印刷 CSS を使用して PDF に変換されます。

于 2012-07-31T01:10:56.287 に答える