• 締切済み

テキストファイル中で印刷改行方法

MS-DOSの時代には良くやったのですが、最近はやらなくなった技に関してです。 プレーンテキストファイルを普通にWindowsのメモ帳などを使って印刷した時に、任意のところで改ページしたいのです。 ESCシーケンスコードの「FF」を埋め込めば良いかと思い、バイナリエディタで「x0C」を埋め込んで見たのですが、それだけではうまくいかないみたいです。 どなたか経験はありませんか? ちなみに、ESC制御コードはプリンタメーカによって違いがあるかと思うのですが、何かの機種で成功した事例があればお教えください。 当方使用機種は、EPSON LP-8300,LP-8500などCANONのLBP-2630です。

  • Spur
  • お礼率66% (51/77)

みんなの回答

noname#26283
noname#26283
回答No.7

 #5、#6です。  今日職場で試してみましたのでご報告します。  エディタで『文字列1[CL]文字列2[CL]文字列3[CL]文字列4』と入力して印刷してみたところ…うまく行きませんでした。印刷結果は『文字列1文字列2文字列3』となり、CL と文字列4は無視されてしまいました。  うそをついてしまったとあせりつつ、もう一度トライしたところ、今度はなぜか、期待通り各文字列がそれぞれ1枚の紙に印刷されました!  最初は4ページが1枚の紙ですむように、2ページ1面の縮小&両面印刷で失敗し、次は縮小せず片面印刷で4枚の紙に各文字列が出力され成功しましたので、縮小や両面だとダメなのかな…と思い、縮小のみ、両面印刷のみでそれぞれ試して原因を探ったのですが、どちらもうまく行きました。じゃあ最初の失敗はなんだったんだろう…と、失敗した縮小&両面でもう一度試すと……うまく行きました!?  結局、最初の失敗の原因はわからず終いです。CL(FF)のコード自体は、MS-DOSよりもずっと前、コンピュータ=大型汎用機だったころから、改ページのコードとして使用されていたはずですが、今やその原始的(?)な機能を継承しないプリンタが多数派なんですかね…? 迷宮入りです。  よろしければ、Spurの環境ではどう印刷されるのか、教えていただけませんか?(単なる私の好奇心です)  プリンタの機種が違い、原因も不明で、結局お役に立てずすみませんでした。

Spur
質問者

補足

わざわざテストまでしていただき感謝ですm(_"_)m 私がやった時は、改ページコードを埋め込んだ位置にピリオドがひとつ出ただけです。 つまり、無視されたのでもなく、解釈できなかったのだと思います。 でも、テストしていただいて、うまく行ったのですか? いいな~。 何か方法があるはずだと思って色々やってはいるのですが・・・ 以前は自分で改行コードだけを出力する簡単な処理をAssemblerで作って、それを使って制御したこともありますが、今のOSではそのAssemblerで作ったソフトが動作しません。 やりにくい世の中になりました(笑)

noname#26283
noname#26283
回答No.6

#5です。混乱を招いてしまいすみません。 >えっ?『12 CL Ctrl-L』ですか?  この3つは同義で、10進だと「12」、制御コードだと「CL」という意味です。  つまり「12」=「CL」=「Ctrl-L」で、いずれも0x0Cのことです。これにより挿入されるのは、0x0Cが1つです。エディタの画面上は「CL」の2文字が合わさったものが半角1文字分の大きさで表示されます。結局、Spurさんがバイナリエディタでされたのと同じことです――ということで、手段が違うものの私もSpurさんと同じことをしてできたはずなので、Spurさんの方法は正しいと思っています。(じゃぁ何で出来ないんだろう?とツッコまれると弱いのですが…)

Spur
質問者

お礼

なるほど、そうだったんですか・・・

noname#26283
noname#26283
回答No.5

 これ、職場でうまく行った覚えがあるのですが、思い違いかも知れません。  私にはバイナリエディタなんて使えませんので、秀丸エディタで「その他」→「制御コード入力」で『12 CL Ctrl-L』(つまり、x0Cです)を入れてできたような…しかし、確信が無いので明日職場で確認し、成否をご報告します。 (ご報告は明日のこの時間になると思います。それまでに良回答がありましたら、締め切って頂いて構いません)  ちなみに環境は、Windows2000→Windows NT4(プリンタサーバ)→NEC MultiWriter 2250 です。

Spur
質問者

補足

えっ?『12 CL Ctrl-L』ですか? 『Ctrl-L』は分かるのですが、その前に『12 CL』を付けるのですか? えっと、それは、キャラクタですか? 『CL』は「x0C」ですよね? 『Ctrl-L』は何でしたっけ?「x0A」ですか? つまり、x21 x22 x0C x0A を送るということかな?

  • you-m
  • ベストアンサー率58% (190/327)
回答No.4

Windowsの印刷の仕組みは、MS-DOS時代とは全く違っているという事を認識しなければならないでしょう。 MS-DOSでは、印刷する為にプリンタ固有の制御コードをコントロールするデバイスドライバを組み込み、そのドライバにアプリケーションが対応している必要がありました。 また、単純な印刷はLPTポートに対してデータをリダイレクトするような形でもできたので、テキストにESCシーケンスを埋め込む事で、直接プリンタを制御するような事も可能だったわけです。 しかしながら、Windowsの印刷の仕組みは、アプリケーションとプリンタのアーキテクチャを完全に切り離しています。印刷時には必ずプリンタドライバを経由するので、印字結果に影響するような制御コード等は、その時点で通常は削除されます。 改行の制御は、アプリケーション側での対応が不可欠なのです。 業務系の印刷をする為に、わざわざESCシーケンスをスルーするドライバをメーカから提供してもらったりする事はありますが、ESCシーケンスを直接送るような操作は、Windowsではかなりイレギュラーな対応が必要になると思いますよ。 相変わらず仮想デバイス名のLPTポートは、明示的に割り当てれば有効(MS-DOSアプリへの互換性の為)なので、LPT1とかへの直接印刷ならば、うまくいくかもしれません。 しかし、Winアプリからの印刷では駄目でしょう。 簡単なのは、LPTポートへのファイルリダイレクトでしょうか。 データを送った先でも、同じように設定・操作していないと駄目なのはもちろん、Windowsのバージョンによってもしかしたら挙動が違うかもしれませんので、少々試行錯誤が必要だと思います。

Spur
質問者

お礼

確かに・・・ そうなんだと言うことは分かっているのですが、何とかならないかな~と考えています。 ですから、「ワザ」なんですね。 どうにかしたい・・・・(-_-;)

回答No.3

#1の方、勘違いかも? エスケープシーケンス、、、懐かしいですね。 windowsのプリントシステム・プリンタの制御コード共にMS-DOSの頃のものはほとんど通用しないと考えた方が良さそうです。プリンタはwindows専用とかMS-DOS非対応などと売ってたりしますしね。 Linuxからのプリントが出来なくて(windows Printing system)悩んでいたりして>自分(笑

Spur
質問者

お礼

でしょう?懐かしいですよね(⌒ ⌒) 私は今でもMS-DOSのバッチファイルを作ったり、色々やっております。 特に最近UNIXコマンドを使うようになって、シェルスクリプトを書いていると、MS-DOSのバッチファイルを思い出したりします。 今回も、ESCシーケンスなどというものを引っ張り出してやろうとしているのです。 プリンタを一時的にESCモードにすれば、メタではなく、プリンタに持っているフォントで動こうとするの、それで何か出来ないかを試しています。 何かアイデアがあればお願いいたします。(⌒ ⌒)(_ _)

  • Fukutarou
  • ベストアンサー率30% (193/641)
回答No.2

すいません。改ページでしたね。タイトルが改行だったので、間違いました。 知ってるソフトで紙という便利ソフトがあり色々出来ます 印刷プレビューも出来ますので参照してください。

参考URL:
http://www.ki.rim.or.jp/~kami/
Spur
質問者

補足

タイトルを間違えました(^^ゞポリポリ 「テキストファイル中で印刷改ページ方法」をお聞きしたくお願いします。m(_"_)m

  • Fukutarou
  • ベストアンサー率30% (193/641)
回答No.1

WINDOWSのメモ帳でしたら、複雑な事を考えず編集で「右端で折り返す」を使用すれば任意のところで折り返せます。 メモ帳のウインドウを最大にしないで、大きさを変えられるようにしてウインドウサイズを変更すれば良いので、お試しあれ。

Spur
質問者

補足

早々に回答頂き、ありがとうございます。 せっかく回答いただいたのですが、それは目的と違うのです。 あくまでファイル中に「改ページ」を埋め込む方法についての質問なんです。 例えば、A4で1枚と少し余分くらいの内容が書いてあるとします。 そのまま印刷すると、1枚目が丁度一杯になってから改ページして、残りが2ページ目に印刷されます。 しかし、説明の都合上、1ページ目の中ほどで改ページし、残りを2ページ目に印刷したいのです。 しかも、何も考えずに印刷するだけで、例えば、メールでそれを受け取った人も同じように印刷させたいので、文書の途中に「改ページ」を埋め込みたいワケです。 昔のプリンタは「FF」を埋め込んでおくだけでよかったのですが、最近のはダメなんでしょうか? ESCシーケンスには対応しているはずなので可能だと思うのですが・・・?

関連するQ&A

  • WindowsXP コマンドプロンプト BATプログラム

    WindowsXPのコマンドプロンプトでBATプログラムを作っているのですが、Echoコマンドで文字を表示するときに、色を指定することはできますでしょうか? 昔、MS-DOSで作ったときは、ESCシーケンスコードで指定していたように記憶があるのですが。 お願いいたします。 

  • ESC/Pで印刷開始位置を変更したい

    ESC/P制御コードで印刷開始位置(上にズラしたい)を変更したいのですが、ご存知の方はいらっしゃますでしょうか プリンタはLP-S310です ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • Becky2 mboxでのエクスポート

    Becky! 2 (ver2.58)で、エクスポート UNIX mbox 形式 で作ったファイルの日本語部分が 読めません。ASCIIの部分は読めます。 エディタは秀丸でエンコード形式を日本語(JIS)にしていますが、本文の漢字の部分 が「=1B$B0f4X$G$9!#=1B(B」というように文字化けします。 ファイルの中身をバイナリエディタで調べてみると、漢字コードはJISに合っているよう ですが「ESC $ @」などのエスケープシーケンスのコードが正しくないようです。 また、他のPCで試すと正しく表示できますので、私のPCの設定に原因があるように 思われるのですが、何がいけないのかが分かりません。 アドバイスお願いします。

  • ゲームの内部コード

    ゲームの内部コードはセーブデータをバイナリ帳で開いて見れますか? 例えば、所持金のアドレスが8008FFB2だったとして、これをバイナリエディタで開いて見つけることができるのですか? 8008FFB2にFF入れれば所持金がMAXになるよ、と言った情報はあるのですが、逆に、8008FFB2を探してそこにどんなデータが入っているのかを確かめたいのですが、逆の方法が分かりません。 最初の8は無視でいい? エディタで開いても、コードの下一桁は全て0でB2なんかありませんし...

  • LP-S310のDosからの両面印刷について

    LP-S310をパラレル接続した場合の、ESC/Pageによる両面印刷について PC-9821(MS-DOS 6.2)にインストールしたソフト(プリンタ選択は、PR201,ESC/P,LIPS,ESC/Page,RPDLの5種です。)から、CanonモノクロレザープリンタA4両面機(LIPS)に出力した場合、両面印刷が可能でした。 今回、プリンタの老朽化に伴い、本機を購入し出力したところ、片面印刷しか出来ません。 これは、ソフト上の問題でしょうか? それとも,両面印刷をする方法があるのでしょうか? よろしくお願い致します。 ※OKWaveより補足:「EPSON社製品」についての質問です。

  • カラーレーザープリンターでお勧めの機種は?

    カラーレーザープリンターの購入を検討しています. 今のところ,「A4」でOKかな,と思ってまして, 候補となっているのは CANON LBP-2410とEPSON LP-1500Cです. スペック・価格はほぼ互角のようですが,CANONは印刷音がものすごくうるさいとの噂も… 上記の2機種についての情報,あるいはそれ以外のお勧めの機種がありましたら,お教え下さい!

  • カラーレーザープリンター(中古)の購入を検討しています。

    はじめまして。 カラーレーザープリンター(中古)の購入を検討しています。候補としては、以下を考えています。 Canon LBP-2040 Epson LP-8000C リコー IPCIO-5000 各機種の長所・短所をご指摘いただける方、是非、書き込みをお願いします。

  • Delphi7 RichEdit操作について

    開発環境:Delphi7 Pro <目的> RichEditコンポーネントにバイナリコードの入力を行いたい。 フォーム上にボタンをはりつけ、そのボタンを押すことで1バイトのバイナリデータ(ASCIIコード)をRichEditに入力したいのですが、どうやったら良いのかわかりません。 さらに、追加仕様として、ASCIIコードの制御コードだと認識した場合は、色付きで「STX」とか「ETX」とかの文字列で表示したいと考えています。 (秀丸等のエディタで制御コードを入力し、RichEditにカット&ペーストすると「.」として表示されるからです。) 今は、ヘルプファイルとインターネットをにらめっこしている状態なのですが・・良い情報を見つけることが出来ません。 経験者の方いらっしゃいましたらよろしくお願いいたします。

  • 故障の少ないCANONレーザープリンターは

    去年CANON LBP-840からEPSON LP-5600に買い換えたのですが、 音がうるさく、故障が多く、消耗品サイクルが早くて高いことから、 中古でCANONのモノクロレーザープリンターを購入したいと思っています。 やっぱりCANONがよかったです・・・ 条件として、故障が少なく長持ちしそうな機種から選びたいのですが、 カタログ等の仕様欄でそれを判断できる項目、注意点はあるのでしょうか。 用紙サイズはA3で、ウオームアップ0秒の機種を考えており、 印刷枚数の少ない比較的新しい中古品が安心だと思っています。 また、オススメの機種を教えてもらえるとありがたいです。

  • Acrobat文書の印刷について

     現在、OSがWindows MEのパソコンでプリンタはCanon LBP-740e(モノクロレーザー)を使用しております。  Acrobat文書の場合のみ印刷が一枚につき数分かかってしまいます。 システムリソースが極端に減っている事もなく、 ドライバをCanonサイトからダウンロードしてきて入れ直したり、 Acrobatの設定で印刷法を画像として印刷するorしないに変更したり、 プリンタの設定で印刷スプールの設定を変えてみたり、画質を落としたり といった方法は試してみましたが、いずれも変化が見られません。  EPSONのLP8700というモノクロレーザーでは同じ文書でも他のワープロ文書と 同様にすいすい印刷できるのですが・・・(機種も性能も違うので一概には 比較できないとは思いますが。)  何か良い方法があれば、ぜひご教示ください。 よろしくお願いいたします。

専門家に質問してみよう