2

マージされたドキュメントを PDF に変換し、ユーザーがダウンロードできるようにするブラウザ内 Microsoft Word ドキュメント マージ機能を実装したいと考えています。このプロセスを Google Chrome と Firefox でサポートしたいと考えています。これが私がそれをどのように機能させたいかです:

  1. クライアント側の JavaScript は、サーバーから、またはユーザーにファイルのアップロードを要求することによって、Word テンプレート ドキュメントを docx 形式で取得します (その後、FileReader API を使用して読み取ることができます)。
  2. JavaScript は、そのローカル データ構造 (Ajax 経由で取得したデータ リストなど) を使用して、テンプレートをドキュメントに展開します。これは、docx ファイルを解凍してその内容を処理するか、DOCx.js を使用して直接行うことができます。テンプレートの展開は、テンプレート変数をローカル データ構造から取得した値に置き換えるだけです。
  3. JavaScript は、展開されたテンプレートを PDF に変換します。
  4. JavaScript は、たとえば Downloadify を使用して、PDF ファイルをダウンロード用にユーザーに提供します。

私が抱えている問題はステップ 3 にあります。私の理解では (これまでに行ったすべてのグーグル検索に基づいて)、次のオプションがあるということです。

  1. PDF に変換するには、ローカル マシンが Windows マシンである必要があり、その上で Word を起動します。これは、WScript.shell を使用して少しスクリプトを作成するだけで実行でき、Internet Explorer で実行できるようです。しかし、私が読んだ内容に基づくと、セキュリティ上の制約により、Chrome または Firefox 内から WScript.shell を呼び出すことはできないようです。
  2. Silverlight で変換を試みることにオープンですが、これを行う方法に関する十分なドキュメントが見つかりません。理想的には、Silverlight を使用する場合、Silverlight コードを JavaScript で記述したいと考えています。これは、(a) CSharp についてあまり詳しくなく、(b) JavaScript の方がはるかに簡単だと思うためです。
  3. 特定の docx ファイルを pdf ファイルに変換する Web サービスを作成し、Ajax を介してそのサービスを呼び出します。可能であれば、いくつかの理由でこれを行いたくありません: (a) docx4javaを使用してみました (私はかなり熟練した Java プログラマーです) が、変換プロセスが遅すぎて、ドキュメントの内容がうまく保持されません。(b) セキュリティの問題を回避するために、ネットワークへの呼び出しを避けたい。変換を行うための小さなサービスを Windows サーバー上に作成することは可能だと思われます。他に適切なオプションがない場合は、その方法を使用する可能性があります。

ご不明な点がございましたら、お気軽にお問い合わせください。アイデアやフィードバックをいただければ幸いです。

4

2 に答える 2

2

コマンドラインツールが大好きです。

ドキュメントをサーバーにロードし、LibreOffice を使用してコマンド ライン経由で PDF に変換します。

soffice.exe --headless --convert-to pdf --outdir E:\Docs\Out E:\Docs\In\a.doc

ユーザーに進行状況バーを表示し、完了したらドキュメントをダウンロードするオプションを提供できます。

LibreOffice のコマンド ライン パラメータの詳細については、こちらを参照してください。

終わり。

于 2012-11-20T16:05:31.290 に答える