-PR-
oohanabisi

OS/Win98でVC++を使ってC言語を学習している初心者です.

C言語のプログラムでMS-DOSプロンプト上のコマンド入力において
プリンタに出力する方法を知りたいです.

たとえばMS-DOSプロンプト上で

C:>[プログラム名][ファイル名(XXX.txt)]

と入力すればプリンターにおいて、入力した[ファイル名(XXX.txt)]が
出力されるようなプログラムを作成したいです.
主にプログラムの流れをどのようにすれば良いか知りたいです.

宜しくお願いします.
  • 回答数4
  • 気になる数0
  • Aみんなの回答(全4件)

    質問者が選んだベストアンサー

    • 2001-01-29 19:14:34
    • 回答No.4
    補足読みました...
     そうなると、プリンタドライバを使っての印刷になりますので、簡単には出来ません。

     全部書いてしまうと、プログラムを載せる事になってしまうので、主な流れとその時に調べるキーワードを列挙します。
    ----ここから
    1.VC++のプロジェクトの新規作成を選択して、プロジェクトを作成する
     ヒント:沢山あるが、今回の様なプログラムでは、『Win32 Console Application』がお薦め、その後のチェックでは『MFCを使用する』が必須(楽をしたいなら)です。

    2.コマンドラインパラメータを取得する
     ヒント:TCHAR* argv[], TCHAR* envp[]あたりを調べる

    3.コマンドラインから取得したファイルを調べる
     ヒント:そのファイルが存在するかどうかが重要

    4.プリンタのハンドルを作成する
     ヒント:CreateDC この時に、プリンタ名を使用するので、そのプリンタ名の取得がちょっとやっかい

    5.コマンドラインからのファイルを開く
    6.一行読込む
    7.プリンタハンドルに一行書込む
     ヒント:TextOut
    8.6-7を繰り返す(改頁等の処理が入るとちょっと面倒)
     ヒント:StartPage/EndPage
    9.ファイルを閉じる
    10.印刷を終わる
     ヒント:EndDoc
    11.ハンドルを解放する
     ヒント:DeleteDC
    12.プログラムを終了させる
    ----ここまで

     ヒントで、関数名になっている物は、その関数名で、ヘルプを検索すれば使用方法が出て来ます。
     ちょっと高いのですが、Windows95 APIバイブル1(9600円)を購入すれば、印刷の仕方が書かれています。参考になると思います。
    お礼コメント
    有難うございました.参考にさせて頂きます.
    投稿日時 - 2001-01-30 09:17:56
    • ありがとう数0
    -PR-
    -PR-

    その他の回答 (全3件)

    • 2001-01-29 13:38:11
    • 回答No.1
    1ファイルをオープン 2プリンタポートをオープン 3ファイルを1行読込 4プリンタに1行書込み 5ファイルのEOFまで3~4繰り返し 6プリンタポートクローズ 7ファイルクローズ 必要に応じて、5・6の間で改ページ(排紙コマンド)をプリンタポートに出力 ...続きを読む
    1ファイルをオープン
    2プリンタポートをオープン
    3ファイルを1行読込
    4プリンタに1行書込み
    5ファイルのEOFまで3~4繰り返し
    6プリンタポートクローズ
    7ファイルクローズ

    必要に応じて、5・6の間で改ページ(排紙コマンド)をプリンタポートに出力
    補足コメント
    上記の1,7は分かったのですが2から6をどのように行えばいいのか
    分かりませんでした.

    出力ストリームをプリンタへするということでしょうか?

    2の「プリンタポートをオープン」とはC言語の域内で出来ることでしょうか?
    C++/VC++はまだ勉強しておりませんので分かりません.

    MSDNライブラリで関数がいろいろありましたがよく分かりませんでした.
    何か関数でこの関数を指しているぞ!!というのがありましたら教えて頂
    きたいです.Cの域を越えていることでもかまいません.

    勉強不足で申し訳ございません.どうぞ宜しくお願い致します.
    投稿日時 - 2001-01-29 14:20:06
    • ありがとう数0
    • 2001-01-29 14:20:23
    • 回答No.2
    ちょっと追加 0 main関数の引数からコマンドライン文字列を取得 やさしすぎるかな?
    ちょっと追加

    0 main関数の引数からコマンドライン文字列を取得

    やさしすぎるかな?
    • ありがとう数0
    • 2001-01-29 15:21:23
    • 回答No.3
     プリンタは固定でよろしいのですか?  もしプリンタが汎用プリンタドライバを使用するとなるとちょっと厄介です。  プリンタによっては、プリンタコードが異なりますので、一度試しに  コマンドラインから、 『type ファイル名 > prn』でプリンタ出力してみて下さい。それが、無事印刷出来れば、何事もなく印刷出来ます。 ...続きを読む
     プリンタは固定でよろしいのですか?

     もしプリンタが汎用プリンタドライバを使用するとなるとちょっと厄介です。

     プリンタによっては、プリンタコードが異なりますので、一度試しに
     コマンドラインから、
    『type ファイル名 > prn』でプリンタ出力してみて下さい。それが、無事印刷出来れば、何事もなく印刷出来ます。
    補足コメント
    >プリンタは固定でよろしいのですか?
    >もしプリンタが汎用プリン…ちょっと厄介です。

    固定であるか汎用であるかの概念が勉強不足で分かりませんでした.
    私の環境はパソコンからLUNでパソコン(プリンタ用サーバー)へ情報を送り
    そこにプリンタが接続されている状態です.汎用になるのでしょうか?

    MS-DOSプロンプトで

    pass>type ファイル名 > prn  と入力しましたが
    ファイルを作れませんでした.  と出力されました.
    投稿日時 - 2001-01-29 15:59:45
    • ありがとう数0
    • 回答数4
    • 気になる数0
    • ありがとう数3
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ