-PR-
解決
済み

C言語でMS-DOSプロンプト入力でプリンタに出力する方法は?

  • すぐに回答を!
  • 質問No.33840
  • 閲覧数627
  • ありがとう数4
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 40% (2/5)

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

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

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

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

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

宜しくお願いします.
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル13

ベストアンサー率 33% (427/1283)

補足読みました...
 そうなると、プリンタドライバを使っての印刷になりますので、簡単には出来ません。

 全部書いてしまうと、プログラムを載せる事になってしまうので、主な流れとその時に調べるキーワードを列挙します。
----ここから
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円)を購入すれば、印刷の仕方が書かれています。参考になると思います。
お礼コメント
oohanabisi

お礼率 40% (2/5)

有難うございました.参考にさせて頂きます.
投稿日時 - 2001-01-30 09:17:56
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル14

ベストアンサー率 24% (612/2465)

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の間で改ページ(排紙コマンド)をプリンタポートに出力
補足コメント
oohanabisi

お礼率 40% (2/5)

上記の1,7は分かったのですが2から6をどのように行えばいいのか
分かりませんでした.

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

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

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

勉強不足で申し訳ございません.どうぞ宜しくお願い致します.
投稿日時 - 2001-01-29 14:20:06
  • 回答No.2
レベル13

ベストアンサー率 26% (511/1924)

ちょっと追加 0 main関数の引数からコマンドライン文字列を取得 やさしすぎるかな?
ちょっと追加

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

やさしすぎるかな?
  • 回答No.3
レベル13

ベストアンサー率 33% (427/1283)

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

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

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

お礼率 40% (2/5)

>プリンタは固定でよろしいのですか?
>もしプリンタが汎用プリン…ちょっと厄介です。

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

MS-DOSプロンプトで

pass>type ファイル名 > prn  と入力しましたが
ファイルを作れませんでした.  と出力されました.
投稿日時 - 2001-01-29 15:59:45
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ