Webシステムの印刷機能
DBサーバなどの接続により、いろいろな機能が実現可能で、様々な用途で用いられるwebシステム。開発者の立場から見ても、PHPやMySQLなど容易なプログラミングによるシステム開発が可能です。
このように大変便利なWebシステムなのですが、印刷機能に限ってはこれが当てはまりません。
画面に表示されたページは基本的にはそのイメージでの印刷となるためページが収まらなかったりして思うような印刷ができません。
印刷処理は、webアプリケーションの弱点の一つと言っていいでしょう。
この弱点の対策のひとつとして用いられるのがExcel(エクセル)を使った印刷です。
もちろんクライアント側にExcel(エクセル)がインストールされていることが前提となるのですが、サーバで必要なデータをCSVファイルやExcel(エクセル)ファイルに書き出し、クライアントではそのファイルをダウンロードしてExcel(エクセル)で印刷をする方法です。
現在、開発中のシステムもこの方法を採って、印刷機能を実現しています。
CSVファイルだとテキストファイルとして扱える反面、ページ設定やレイアウトはクライアント側で設定しなければなりません。
これに対してExcel(エクセル)ファイルの場合は、ベースとなるExcelファイルにページ設定等の指定を行いサーバー側に保存しておき必要なデータを抽出しベースとなるExcel(エクセル)ファイルの複製にデータをセットしそのExcelファイルをダウンロードします。
この方法だとクライアント側ではプリンタに依存する部分の微調整は多少ありますが、ほとんどそのままの状態で印刷することが可能となります。
しかし、この方法でもいくつか問題点があります。
この機能実現のために用いているPHPExcelがやたらと『重い』ということです。
もちろん扱うデータ量にもよりますが、ちょっと複雑なページ設定やセルの編集を行うと数分掛ってしまう場合があります。
また、メモリの使用量も相当なものでサーバのメモリ使用制限の値も気をつけなければなりません。
それから、問題点というわけではありませんが、ユーザーによってはいちいちExcel(エクセル)を起動するのが煩わしく感じる方もいらっしゃいます。
「印刷」ボタンをクリックするだけプリンタに印刷できる事を要望されるユーザーも多数いらっしゃいます。
この点については、何とか実現する方法がないかあちこち探してみているのですがなかなかいい解決策が見つかりません。
引き続き調べてみたいと思いますが、いい方法が見つかりましたら、また、このブログにもアップしお知らせしたいと思います。
・弊社ホームページ:http://msystm.co.jp/
・上記製品URL:http://msystm.co.jp/user_tosho1.html