WEB管理ページで登録したデータから、リアルタイムにローカルプリンタで

バーコードを印刷して在庫管理をしたい。

レンタルサーバーを使用したネットショップで、WEB管理ページに
商品登録を1品登録をすると、ローカルのパソコンから随時、
在庫管理用のバーコードが出力されるようなしたシステムは
無理なのでしょうか?

例えば10品登録して、サーバーから
10品分のデータをダウンロードして、ローカルで印刷するように
リアルタイムじゃないシステムしか考えられないのですが

これが、WEB管理ページから1品登録すると、ローカルのパソコンから
バーコードが1枚印刷されるようなシステムが理想なのです。
現在のシステムはPHP、JavaScriptを使用しています。

回答の条件
  • 1人3回まで
  • 登録:2007/03/14 10:13:27
  • 終了:2007/03/19 13:40:41

ベストアンサー

id:kurukuru-neko No.6

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/03/14 18:49:44

ポイント50pt

>更にローカルのパソコンでアイテム、商品番号

>、仕入価格、販売価格をインプットして

>バーコードを印刷して商品に付けています。

単純に考えるとクライアント側のプログラム

が既にあるのであればホスティング側

で簡単い引渡しする方法があればよい。

回答 5とほぼ同じですが。

ホスティングしているサーバ上の

メンテ画面を変更可能なら

1.PC上にローカルのWEBサーバー

  を起動させる。

  このプログラムは、現在手入力している

  パラメータを入力とする印刷用

  PHP等を呼び出す。

  プログラムは現在のものを修正する

2.現在のホスティングしている

  サーバの管理画面の登録が

  登録終了時、登録完了の画面

  遷移時、PC上のWEBサーバを

  呼出しするとき登録情報のパラメータ

  を指定して呼出しを行う。

  印刷失敗もあるので管理画面に

  再印刷ボタンもつける。

  管理画面で登録完了したら

  →新規に別Windowをopenする。

   (PC上の印刷用ページを表示)

   →PHPで印刷処理

  →印刷終了でWindowクローズ

   http://127.0.0.1/print.html?xxxx

登録完了で印刷が開始するから

ほぼリアルタイムになる。

再印刷も実現簡単

id:nijinohasi

ありがとうございます。

かなり実用的な内容のようです、十分検討させてください。

2007/03/14 20:04:01

その他の回答(6件)

id:kibitaki No.1

kibitaki回答回数53ベストアンサー獲得回数42007/03/14 11:16:55

ポイント16pt

カートのシステムがレンタルか独自開発かにもよりますが、

基本的にはブラウザ上で「勝手に」印刷を始めることは(悪用され得るので)

ブラウザ側で許可されていません。

1.ActiveXなどでそれを強引に回避するか、

2.サーバー側でPHPのライブラリを使ってバーコード画像を生成して、

 2-1.ブラウザ上で画面を印刷するjavascript(許可のクリックが必要)

 2-2.クライアント側アプリケーションで画像を取得~印刷(バッチ)

等ワンクッションおく形になります。

独自に開発するなら何でもアリですが、公開されているものでどうにかしたい

レベルであれば若干敷居が高くなります。

http://www.vector.co.jp/soft/win95/net/se170278.html

などのように間にメールをかませるのが、完全なリアルタイムではないですけど

比較的安全性が高い方法かなと。

id:nijinohasi

先に詳しく説明しておけば良かったですね。

システムは全て独自開発です。

現在はWEBの管理ページで商品登録をして、更にローカルのパソコンで

アイテム、商品番号、仕入価格、販売価格をインプットして

バーコードを印刷して商品に付けています。

インプットが二度手間なので1回のインプットで商品登録と

在庫管理用のバーコード発行を出来ないかと思案しています。

現在もPHP GD を使用しているので、バーコード画像を作成できますが

出来れば、ローカルにアイテム、商品番号、仕入価格、販売価格の

データを落として印刷したいのです。

2007/03/14 12:13:27
id:kibitaki No.2

kibitaki回答回数53ベストアンサー獲得回数42007/03/14 13:30:30

ポイント15pt

javascriptがご自分で書ける方でしたら、

PHP(サーバー)とWSH(ローカル)で全て解決できます。

PHP側は、商品登録結果画面のHTML上に、印刷に必要な情報と

バーコード画像を全て書き出すようにしておきます。

その上で、WSHで

・起動したら、バックグラウンドで常駐してIEを監視。

・商品登録結果画面が表示されたら印刷or情報取得

・必要ならデータをローカルに保存

まで自動化できますよ。

C等でやるべきこともJscriptである程度できてしまいます。

ちょっと丁寧に作る必要もありますが、頑張ってみて下さい。

id:nijinohasi

WSHは初耳でした、ありがとうございます。

結構使えそうですね。

他にも良いアイディアがあったら教えてください。

2007/03/14 14:16:09
id:nandedarou No.3

nandedarou回答回数230ベストアンサー獲得回数342007/03/14 14:38:55

ポイント15pt

Windows自動化ソフトUWSC(無料)

http://www.izagne.com/uwsc/uwsc.html

http://www.h7.dion.ne.jp/~umiumi/

はいかがでしょうか?

結構なんでもできます。書籍があるので、わかりやすいです。定期的に実行できるので、その間隔を短くすれば、リアルタイム処理になります。


また、エクセルはWebデータを取り込めます(データ→新しいデータの取り込み→Webクエリ)。バーコードも表示できます。エクセルのマクロで自動化できます。

リアルタイム処理を実現するには、別途工夫が必要になると思いますが、リアルタイムでなくてもいいなら、つまり、人間が実行ボタンをクリックしたタイミングで全ての処理をするという仕様でよければ、かなり簡単に実現できそうです。

id:nijinohasi

ありがとうございます、検討してみます。

2007/03/14 16:11:35
id:iketerummo No.4

iketerummo回答回数68ベストアンサー獲得回数42007/03/14 15:12:21

ポイント20pt

技術的には可能ですが、私であればそのような仕様は作りません。

技術的に可能なリアルタイムでの出力方法は

phpのプリンタ関数を使用しダイレクトにローカルプリンタへ出力するというもの。

出力先はローカルになるため、レンタルサーバーから見えるように外部公開しなければいけませんね。もちろん、誰でも印刷できては困りますのでセキュリティを考慮せねばいけません。

私が作るのであればリアルタイム性を残すのであれば

WEB管理ページ⇒ローカル管理プログラム(言語は何でもよい)にします。

ローカルで印刷するため、公開も必要ではなく、外部のレンタルサーバーへのアクセスも容易です。この際、phpで商品登録を受け付けるcgiを用意し、ローカル管理プログラムから商品登録リクエストを発行する形になります。

リアルタイム性を重視しない(タイマーを使ったバッチ処理)のであれば2.さんのWSHでもタスクスケジューラでも、タイマーを使った監視プログラムを使いローカルプリンタへの出力は可能だと思います。

もう一つ案としては、レンタルサーバー⇒社内Webサーバーとし公開する形です。ローカルプリンタのアクセスは容易ですが、公開する以上、セキュリティを考慮する必要があります。

参考になれば幸いです。

id:nijinohasi

おっしゃるように、ローカル管理プログラムからサーバーにUPすべきところですが、

在庫が多くなり、バーコード管理まで必要になると予想していませんでした。

セキュリティを考慮した社内LANも検討してみます。

2007/03/14 16:19:48
id:nandedarou No.5

nandedarou回答回数230ベストアンサー獲得回数342007/03/14 16:09:29

ポイント40pt

なるほど、phpのプリンタ関数ですか、

http://jp.php.net/manual/ja/ref.printer.php

iketerummoさんからの情報を応用して、外部公開不要な構成を考えて見ました。


PHP、JavaScript、若干のApache(Webサーバ)の知識だけで、

次のようなシステムができますね。


1.印刷するPCで外部非公開のWebサーバを起動させる。

  外部非公開である為、あまりセキュリティーを考慮する必要はありません。

  クライアントに普通にApacheをインストールすれば、通常外部非公開です。


2.1のPCに次のようなWebページをつくる。

  このページにアクセスすると、phpが起動し、

  既存の外部Webサーバから入力済みデータを取り出し、

  プリンタ関数でバーコードを印刷する。


3.2のページに1のPCからブラウザでアクセスする。

  (同一PCの内部からのアクセスです。)


4.2のページは、JavaScriptで、定期的に更新する仕様にする。

  定期実行の間隔が十分短ければ、リアルタイム処理となるでしょう。

id:nijinohasi

ありがとうございます。

かなり実用的な内容のようです、十分検討させてください。

2007/03/14 19:32:27
id:kurukuru-neko No.6

kurukuru-neko回答回数1844ベストアンサー獲得回数1552007/03/14 18:49:44ここでベストアンサー

ポイント50pt

>更にローカルのパソコンでアイテム、商品番号

>、仕入価格、販売価格をインプットして

>バーコードを印刷して商品に付けています。

単純に考えるとクライアント側のプログラム

が既にあるのであればホスティング側

で簡単い引渡しする方法があればよい。

回答 5とほぼ同じですが。

ホスティングしているサーバ上の

メンテ画面を変更可能なら

1.PC上にローカルのWEBサーバー

  を起動させる。

  このプログラムは、現在手入力している

  パラメータを入力とする印刷用

  PHP等を呼び出す。

  プログラムは現在のものを修正する

2.現在のホスティングしている

  サーバの管理画面の登録が

  登録終了時、登録完了の画面

  遷移時、PC上のWEBサーバを

  呼出しするとき登録情報のパラメータ

  を指定して呼出しを行う。

  印刷失敗もあるので管理画面に

  再印刷ボタンもつける。

  管理画面で登録完了したら

  →新規に別Windowをopenする。

   (PC上の印刷用ページを表示)

   →PHPで印刷処理

  →印刷終了でWindowクローズ

   http://127.0.0.1/print.html?xxxx

登録完了で印刷が開始するから

ほぼリアルタイムになる。

再印刷も実現簡単

id:nijinohasi

ありがとうございます。

かなり実用的な内容のようです、十分検討させてください。

2007/03/14 20:04:01
id:iketerummo No.7

iketerummo回答回数68ベストアンサー獲得回数42007/03/15 10:22:51

ポイント20pt

5.nandedarou 様の案を更に実運用で考慮してみます。

質問者様はリアルタイム(即時)性は追求されていないのですね?と考え

あまり変更案は無いのですが一点だけ

JavaScriptのタイマー常駐ではなくcron,タスクスケジューラによるhttpリクエスト発行PG(WSHが一番楽です)を登録し定期実行させます。

IEを常駐,JavaScriptだと長期運用に耐えず人的ミス(間違ってブラウザを閉じるなど)も起こりえます。間違ってPC電源落とされたら一緒ですが、少しでもリスクを考慮。違いはバックエンドで管理させるというところ。


WebサーバーはPHPが動けばIISでも大丈夫です。

コメントにしたかったのですが入力できませんでした。なのでポイント不要です。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません