= クライアント用プログラムのダウンロード機能 = PrintAnyServerには、Web画面からの画像登録以外にも、画像登録専用プログラムが用意してある。[[br]] Windows用クライアントは、{{{SaveAnyWindow.exe}}}という名前で、{{{/opt/OperationLog/PrintAnyServer/clinet/SaveAnyWindows}}}に、 Linux用クライアントは、{{{PrintWindow}}}という名前で、{{{/opt/OperationLog/PrintAnyServer/clinet/printWindow}}}においてある。[[br]] それぞれのプログラムは、現在のPrintAnyServerができる以前からあったプログラムをPrintAnyServerに対応するように修正したもので、操作方法も多少違っている。[[br]] = 各クライアントの設定 = クライアントプログラムを使用するには、どのサイトのPrintAnyServerに接続するかを設定する必要がある。[[br]] ここで例示するネットワーク設定は、{{{192.168.1.0/24}}}とし、PrintAnyServerが動作しているhttpサーバーは{{{192.168.1.10}}}とする。 == !SaveAnyWindow == SaveAnyWindowはC#で作成してあり、プログラムの設定をプログラムと同じディレクトリにある{{{SaveAnyWindow.exe.config}}}を使って行う。[[br]] {{{SaveAnyWindow.exe.config}}}は、必ず{{{{{{SaveAnyWindow.exe}}}の実行ディレクトリにあるように設定すること。[[br]] 設定する箇所は、{{{siteName}}}、{{{saveURL}}}、{{{printURL}}}の3ヶ所。[[br]] {{{ : : : }}} {{{siteName}}}は、SaveAnyWindowを起動した際に、タイトルバーに表示される文字列で、どの画像サーバーに送るかを人間が判別するための設定。[[br]] {{{saveURL}}}、{{{printURL}}}は、通信する画像サーバーのWeb APIのURLを設定する。[[br]] Web APIのURL設定は、{{{/pas/api/~}}}までは固定文字列として扱い、{{{http://localhost}}}をサイトに合わせて設定する。[[br]] 通常は、PrintAnyServerの接続URLで使用する{{{ホスト名 か ホスト名:ポート番号}}}を設定する。 変更した設定ファイルを使用してSaveAnyServerを起動し、画像が登録できれば設定ファイルの作成は完了。[[br]] ダウンロードできるようにするために、!SaveAnyWindow.exeと設定ファイルで圧縮ファイルを作成し、webクライアントからダウンロードできるhttpサーバーのディレクトリにコピーする。[[br]] 例として、ここでは圧縮ファイル名を{{{SaveAnyWindow_TEST_20180822.zip}}}とし、{{{/var/www/html/printView/clients/windows}}}にコピーするものとする。 == !PrintWindow == PrintViewは、Linux用のクライアントプログラムとして作成されている。[[br]] PrintWindowはpythonで記述してあり、Tkで画面を作成している。[[br]] PrintViewを起動するには、クライアント側にpython 2.6以降がインストールされている環境で、以下のpythonパッケージがインストールされている必要がある。 * !TkInter * Pmw https://pypi.org/project/Pmw/ 又は、PrintViewが起動できるサーバーを用意し、クライアント側でX-Windows経由で使用する方法もある。[[br]] 接続先URLはソースコードに直書きされているので、修正したものを使用する。[[br]] 設定するファイルは{{{printIcon.py}}}にある{{{url}}}と{{{plUrl}}}で、{{{SaveAnyWindow}}}の接続先URLと同じものを設定する。[[br]] {{{ : import traceback import base64 import json import urllib2 printIconFile='/pf/epics/app/OP/python/prtIcon.gif' saveIconFile='/pf/epics/app/OP/python/saveIcon.gif' printerList=['(file only)'] scaleList=['100%', '75%', '50%', '25%'] gifSaveDir='/pf/epics/log/Print/' url="http://192.168.1.10/pas/api/addImage" plUrl="http://192.168.1.10/pas/api/getPrinters" if not os.path.isdir(gifSaveDir): gifSaveDir='/var/tmp/' : }}} 設定後は同様に動作チェックを行い、圧縮ファイル{{{PrintWindow_TEST_20180822.tar.gz}}}をとし、{{{/var/www/html/printView/clients/linux}}}に保存する。 == ダウンロード機能の設定 == PrintAnyServerからクライアントのOSとネットワークを取得して、ダウンロードボタンを表示するかを判別している。[[br]] ダウンロード機能設定は、設定ファイルの{{{[downloads]}}}に設定する。[[br]] {{{ ##################################################### # ダウンロード可能なクライアントプログラムを定義する # 定義は最大10 # format: OStype,netmask,ClientProgram # OStype: windows or linux # netmask: ダウンロード可能ネットワーク # ClientProgram: クライアントプログラムファイル ##################################################### [downloads] client0=windows,192.168.1.0/24,clients/windows/SaveAnyWindow_TEST_20180822.zip client1=linux,192.168.1.0/24,clients/linux/PrintWindow_TEST_20180822.tar.gz }}} 上記の設定を保存し、{{{PrintAnyServer}}}を再起動する。[[br]] {{{192.168.1.0/24}}}ネットワーク上のWindowsとlinuxクライアントのWebブラウザをリロードすると、ダウンロードボタンが表示されるようになる。[[br]]