• 締切済み

テキストファイルに文字装飾をつけて印刷したい

学校勤めです。 たとえば,通知票の出力は次のようにしています。 (現行システム) 1.データベースから必要データをCSV形式で取り出す。 2.テキスト形式のフォーマットファイルを用意しておく 3.AWKを用いて(1)のデータを(2)のフォーマットに差し込む 4.PRTSという印刷ユーティリティで印刷。 以上の作業をMS-DOS上で行っています。 (注意点) (2)のフォーマットには(4)のPRTSに対するコマンドをテキストで埋めこんでおきます。      PRTSは,「私は\uやんなか\u,\a45才\a,\f男性です\f。」という文字列を        \uで囲まれた部分にアンダーラインを        \aで囲まれた部分に網かけを        \fで囲まれた部分を強調文字にして出力します。 (問題点) 1.PRTSはキャノンレーザーショットに特化したユーティリティである。 2.PRTSはパラレルポートを必要とする。 以上のことから,他の出力システムを模索しています。 「現行システム」の(2)~(4)に替わるよいシステムはないでしょうか (要件) 1.整形から出力までをMS-DOSでバッチ処理できること。 2.現行システムと同様の文字装飾ができること(その他文字サイズ指定など) 3.安価でできること。 どなたか知恵を貸していただけませんか?

みんなの回答

回答No.5

話がちょっと戻りますが、 >最近のプリンタはパラレルの端子を持っていないので困っているのですが、 >こちらの理解不足でしょうか? 簡単に調べたところ、最近のプリンタはパラレル端子はオプションになっています。(パラレル端子を付けるとUSB端子が無くなるとか困った仕様ですが) 問題がパラレルインターフェースの廃止でないのなら、パラレル端子付きのプリンタを注文すればいいようにも思えます。 PRTS が使えるかは分かりませんが、オプションのROMを追加すれば使えるかな(?)と思います。 詳細は、キャノンの営業さんと話を詰められた方がよろしいかと思います。 http://cweb.canon.jp/satera/lbp/lineup/a3-mono/8630/spec.html まあ、選択肢のひとつとして検討してはいかがでしょうか?

yannaka
質問者

お礼

お礼が遅くなり申し訳ありません。 確かに、オプションでパラレルのボードをつけることは可能なのですが、 価格が3万円ほどもしてして高価です。 そんなこともあり、システムを見直すべきかと思った次第です。 どうもありがざいました。

すると、全ての回答が全文表示されます。
回答No.4

1つの文書に多数のレコードを表示することは可能です。 固定長行数ならレコード移動コマンドの { NEXT } を使用できるのですが、可変長行数の場合 { NEXTIF } を使用して空データの埋め込みデータ行を用意する必要があります。(手間が掛かります) 固定長行数なら { NEXT } http://office.microsoft.com/ja-jp/word-help/HP005186174.aspx 可変長行数なら { NEXTIF } http://office.microsoft.com/ja-jp/word-help/HP005186175.aspx ただ、30クラス規模ですとできそうでできない感を感じるのはありますね・・・。 DOS プログラムのプリンタ出力をリダイレクトするような方法を使えばうまくいくかもしれません。ただ、私は試したことはないですのでできるかどうかわかりません。 方法: ネットワーク プリンターに、DOS アプリケーションの印刷ジョブをリダイレクトします。 http://support.microsoft.com/kb/245017/ja DOSPRN http://dosprn.software.informer.com/ Printfil http://printfil1.software.informer.com/ DOS2USB http://dos2usb.software.informer.com/ 海外のソフトはいろいろと日本語対応しているかもあやしいので注意してください。 また、なんども、あやふやな回答ですみません・・・。

yannaka
質問者

お礼

ていねいにご回答いただきありがとうございました。 ご教示いただいたことは、なかなかすぐには飲み込めないのですが、 時間をかけて勉強してみます。 rtf形式を利用することも検討してみましたが、 すぐにはむずかしそうです。 やはり、ワードとかエクセルを使って印刷する方法を考えたほうがいいのでしょうか。

すると、全ての回答が全文表示されます。
回答No.3

同等のことは Microsoft Word の差し込み印刷機能でできます。 CSVや住所録の値を定型文書に挿入する機能です。 こちらなどが参考になると思います。 http://www.miyazaki-cci.or.jp/nichinan/pc/case92.html 要件1は残念ながらできないか難しいと思います。

yannaka
質問者

補足

有益なアドバイスをありがとうございます。 ワードでの差し込み印刷の参考にさせていただきます。 ただ、当方の知識不足かもしれませんが、 ワードやエクセルの差し込み印刷は、 1件につき1行のデータにしか対応していないのではないでしょうか。 たとえば、生徒の通知表の場合、 当方のデータ管理では、1科目につき1行になっていますので、 生徒の科目数により、 ある生徒は18行、ある生徒は20行と様々ですので、 ワードやエクセルではできないのではないでしょうか? それと、通知表をクラス単位で打ち出すとすると、 30クラスあれば30ファイルになるので、 いちいちワードを起動して印刷というのは現実的ではないのです。 やはり、一括してコナンンドラインから命令を出す、というのがいいのですが。。。

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

UNIX で awk を使ったりするときでも「シェルスクリプトで処理」って言ったりするので, 「awkを使っているのに『MS-DOSでバッチ処理』というのが理解に苦しみます。」ってことはないと思うけど>#1. 今さら「MS-DOS でバッチ処理なの?」ならまだわかる. さておき, Windows なら理屈としては OLE 経由で Word を操作 のようなことは可能だし, これならアンダーラインだろうと網掛けだろうと強調だろうと文字サイズの指定だろうとできるはずです. やったことはないですが.

すると、全ての回答が全文表示されます。
  • localica
  • ベストアンサー率52% (202/385)
回答No.1

awkを使っているのに「MS-DOSでバッチ処理」というのが理解に苦しみます。 ともあれ、問題点1,2はもうすっぱり止めましょう。 代替案としてはネットワークプリンタにするか、プリントサーバー或いはパソコンと繋げる。 レーザープリンタならPostScript(http://ja.wikipedia.org/wiki/PostScript)などでデータを渡してやれば出力可能。 投資が少なく技術も不要な方法として、ExcelマクロかVBスクリプトでDBから引っ張り出したデータを加工すれば簡単に同等のことは可能だと思います。 要件の1を外す方が簡単だと思いますよ。

yannaka
質問者

補足

ドバイスいただいたように、ネットワークプリンタにしたいのですが、 プリンタへの接続はパラレルでないとPRTSは使えないようなのです。 最近のプリンタはパラレルの端子を持っていないので困っているのですが、 こちらの理解不足でしょうか? >awkを使っているのに「MS-DOSでバッチ処理」というのが理解に苦しみます。 LINU」Xなどを利用すればよいということでしょうか? 確かにTEXなど強力なツールがあるそうですが、 何分、知識も泣ければ環境もないので、 できればなれているMS-DOSでやりたいと思ったわけです。 LINUXがお薦めということになるのでしょうか? PostScriptなどはとても難しく感じてしまうのですが。。。

すると、全ての回答が全文表示されます。