JavaScriptを活用して、ユーザーの入力テキストをWordファイルとして生成し、そのファイルをダウンロードする技術についてご紹介します。
これは、ウェブアプリケーションでのレポート生成、フォーム入力結果の文書化、あるいは動的に内容が変わる文書をユーザーに提供する際に役立ちます。
今回は、docx.jsというJavaScriptライブラリを用いる方法を中心に解説します。
はじめに
文書作成の自動化や、ウェブページから直接文書を生成する技術は、多くの業界で需要があります。例えば、オンラインでのアンケート結果をWord文書でダウンロードしたい、またはウェブアプリケーションからレポートを生成し、その場で提供したい場合などです。JavaScriptを用いて、これらのニーズに応える方法を一緒に見ていきましょう。
CSSの基本的な設定
まず、Word文書を生成する前に、ウェブページに必要なスタイリングを設定します。以下のCSSコードは、ページの基本的なフォーマットを定義しており、必要に応じてカスタマイズ可能です。
<style>
body{
font-family:Verdana,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W6",Osaka,"MS Pゴシック",Arial,sans-serif;
padding: 0;
margin: 0;
}
.clWrap{
width:800px;
margin:0 auto;
text-align:center;
}
h1{
font-size:18px;
line-height:1.4em;
text-align:center;
font-weight:normal;
}
</style>
このCSSは、文書の読みやすさを保つために最適化されています。ページの中央にコンテンツを配置し、見出しを適切に強調表示します。
JavaScriptでWordファイルを生成する
docx.jsライブラリを使用して、実際にWordファイルを生成する方法を見ていきましょう。まず、必要なJavaScriptライブラリを読み込みます。jquery.min.js、base64.js、jszip.js、docx.jsファイルを読み込みます。
DOCXjs()を宣言し、「宣言した変数.text(Wordに出力するテキスト)」でWordファイルにテキストが出力されます。
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="./libs/base64.js"></script>
<script type="text/javascript" src="./libs/jszip/jszip.js"></script>
<script type="text/javascript" src="docx.js"></script>
<script>
function fncDoc() {
var doc = new DOCXjs();
doc.text('JavaScriptの処理内に記述のテキスト情報を');
doc.text('Wordファイルのテキスト情報として出力してます。');
var output = doc.output('datauri');
}
</script>
このコードスニペットは、fncDoc関数を定義しています。この関数は、新しいWord文書を作成し、そこにテキストを追加した後、データURIとして出力します。これにより、ユーザーは生成されたWordファイルを直接ダウンロードできます。
HTMLでダウンロードリンクを設定する
ユーザーが生成されたWordファイルをダウンロードできるように、HTML内にダウンロードリンクを設定します。
hrefにjavascript:fncDoc()を設定するとリンククリックでWordファイルがダウンロードできます。
<div class="clWrap">
<h1>以下の「ダウンロード」リンククリック後しファイルをダウンロード後、<br />
ファイル名を「~.doc」「~.docs」に変更して開いてみて下さい。</h1>
<a href="javascript:fncDoc()">ダウンロード</a>
</div><!--/clWrap-->
このリンクをクリックすると、fncDoc関数が実行され、ユーザーに対してWordファイルがダウンロードされます。ファイル名は、ダウンロード後にユーザーが任意で変更できます。
docx.jsを使ってWordファイル出力するデモページ
この技術のデモページは、以下のリンクからアクセスできます。
ソース元:すごい!JavaScriptでMS Wordファイルを生成「DOCX.js」
すごい!JavaScriptでMS Wordファイルを生成「DOCX.js」
テキストエリア等に入力させた文字をWordファイルとして生成したりも出来そうですが、MS WordがPCにインストールしてれば直接Wordを開いてテキストを入力した方が早いです。
まとめ
JavaScriptを使ったWordファイルの動的生成とダウンロードは、多くのウェブアプリケーションで役立つ技術です。docx.jsライブラリを使用することで、開発者は容易にこの機能を実装でき、ユーザーにとって価値ある文書を提供できます。本記事が、この技術の基本を理解し、自身のプロジェクトに応用するための出発点となれば幸いです。
※流用される場合は自己責任でお願いします。
デモページタグ内のGoogleアナリティクスタグは流用しないで下さい。