- ベストアンサー
印刷プログラムを作りたい!
いつもお世話になります。 Windows上に常駐して、WEBサーバー上にあるPDFを監視し ファイル名が変われば自動で印刷する。 ※印刷したファイルはテキストなどのログに残して、同じファイル名であれば印刷しない と言った内容のPGを作ってみたいのですが、こういった動きに適した言語は何が良いのでしょうか? 現状、PHP位しか扱える言語が無いのでスキルアップの為にも ローカルで動くようなPGを是非、作成したいと思い投稿しました。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ログは適当にファイルを作って情報を保存しておけばいいのでそんなに問題にならないと思います。 サーバーにアクセスすると 1.ディレクトリリストが表示されてPDF一覧のファイルがみれるのでしょうか? 2.それともHTML内に埋め込まれている情報をもとにPDFファイル名を取得するのでしょうか? 必要な物以外は PDFをダウンロードせずに高速に処理をするには、 1.なら 変更日ものっているので比較的容易だと思いますが どのファイルがどのファイル名に変更があったかまではわかりません。 2.の場合は、 リンクを元に データではなく ヘッダだけリクエストして、 運がよければ、Last-Modified: という 更新日が載った情報が 返ってきますので それをもとに変更日は取得できます。 (サーバーに アクセスして ヘッダを要求して表示してみてください。) この場合もファイルの変更がどのファイルからどのファイルになったかはわかりません。 また、Content-Length: というファイルサイズも返ってきているようでしたら ファイルサイズがわかるので、 変更があったかどうかの判断材料につかえます。 (また FTPでも どのファイル名になったかはわかりません。) 1,2 どちらにしても、 ファイル名A が ファイル名B になったことはわかならないので チェックサムを利用するか あらかじめ元のファイルをダウンロードしておくなどして ダウンロードしたものと、バイナリ比較して一致するかどうか 確認が必要になってくるかと思います。 ファイル名変更でなく もし新規に追加されたファイルだけを印刷するのでしたら、 ファイルリストと印刷の有無を PCに保存したものに ファイル名が存在するかチェックするだけでいいかと思います。 PDFを表示できるようでしたら、 エクスプローラーの右クリックの印刷みたいな感じで 印刷の方は、どの言語でも簡単に ファイル印刷コマンドでできますので、 言語を決めてから再度聞くといいと思います PHPを利用していると言うことなので 構文がにているC、C++言語系がとっつきやすいかと思います。 言語の参考書やHPが少なくてもよければ、 インターネットアクセスは、Delphi言語のindyコンポーネントがらくです。 (indyは C++ Builder でも利用できると思います) 変更確認の間隔は タイマーイベントでも利用するといいかと思います。
その他の回答 (3)
- todo36
- ベストアンサー率58% (728/1234)
> 普通にhttpのアクセスでファイルを監視して、新しいPDFがあれば httpで、普通はそんな事は出来ませんが... ftpなら可能だけど
サーバー機がwinodowsでその上を走らせるのなら ファイル変更のイベントをキャッチするだけで 簡単にできると思います クライアントがwinodwsで サーバーがlinux系とかで別物だとやり方がかわるので そのあたりをかかれた方がいいと思います
お礼
ありがとうございます。 クライアントはWindows、WEBサーバーはlinuxです。 環境も全く離れた所ですので普通にhttpのアクセスで ファイルを監視して、新しいPDFがあれば印刷を実行するPGを作成したいと考えています。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
何をもって適しているとするか、条件がありませんので一概にはいえませんが、たいていのWindows向け汎用言語であれば作成できるでしょうから、お好みの言語を選ばれればよいかと思います。 仮に「適しているとは、プログラム実行の負荷が低いことである」という条件を付けるとすれば、C言語かC++言語を使用するのが、プログラム実行の負荷が最も低くなる「可能性」があります。(アセンブラならもっと低くなる「可能性」がありますが、まぁこれは例外と言って差し支えないでしょう。)
お礼
ありがとうございます。 「Windows向け汎用言語」と有りますが、上記以外ではどのような物があるのでしょうか? できればとっつきやすい言語がいいのですが… 自動印刷ですので、デフォルトプリンターからいきなり印刷させる事(プリンタ、用紙などの確認画面を飛ばして)これが手軽に実現可能な言語などがあれば良いのですが…
お礼
>構文がにているC、C++言語系がとっつきやすいかと思います。 おお!これは大変参考になります。 早速、専門書を買って勉強してみようと思います。 ありがとうございました。