PCスペース ご利用のお客様から『こんなに便利なソフトが、こんなに安くていいの?』と言われるソフトの開発に力を注いでおります。ソフトを開発したいが、時間的、人材的、予算的にあきらめている方、一度相談してみてください。サーバ環境、LAN構築、ホームページ作成などもお手伝いします。
便利ツール(ネイティブ印刷
ネイティブコードで印刷するDelphiコンポーネント

 Windows環境での印刷は、レポートツールで行うものと決め込んでいませんか?確かにプレビュー機能もあり、簡単便利ですよね。でも、専用用紙(納品書、請求書、送り状、ラベル)、中途半端なインチ設計の用紙に印刷する時、サイズを合わせる事で困りませんか?「そんな用紙はユーザに使わないようにしてもらえば」と他人事を言われると、システム開発担当者は困りますよね!基幹業務ではそんな用紙がゴロゴロあります。
 そこで、直接プリンタを制御するコンポーネントを作成しました。代表的なプリンタエミュレーションの制御コードを共通化し、多少なりの手間を省けますが、足りない制御コードは、勝手に付け加えて下さい。

(注)プリンタの制御コード、及び、Delphi言語の知識が必要です。

■基本仕様

 従来のキャラクタベースの印刷を実現します。
 インチ系連続帳票の印刷に使用して下さい。
 対応エミュレーションは、今のところ4種類です。
 (PR201系、ESC/P系、FMPR系、その他)


■機能

 Execute 簡易印刷の実行
 Pstart 制御コードセット、VFU、漢字ON、標準ピッチ
 Pend 標準ピッチ、漢字OFF
 Pout 制御コード印字
 Ptext 文字列印字
 Pcrlf 改行
 Pcr 復帰
 Pff 改ページ
 Pnorm 標準ピッチ
 Pcomp 圧縮ピッチ
 Pbig4 4倍角設定
 Pbig 横倍角設定
 PbigT 縦倍角設定
 PbigOFF 倍角解除
 Punder 下線設定
 PunderOFF 下線解除
 Pcl2 1/2改行ピッチ設定
 Pcl10 1/10改行ピッチ設定
 PclOFF 改行ピッチ解除


■プロパティ

 Active: Boolean
  簡易印刷を実行します。

 DocPageFeed: Boolean
  簡易印刷の改ページを設定します。

 DocPrnMpde: TNatPrnType
  簡易印刷の文字ピッチを設定します。
    NORM : 標準
    COMP : 圧縮

 DocTitle: String
  簡易印刷のタイトルを設定します。。
  APIを呼ぶ時のタイトルになります。

 Name: String
  コンポーネントの名前を設定します。

 PageLines: Integer
  改ページ行数を設定します。(1行=1/6インチです)

 PrnType: TNatPrnType
  プリンターのエミュレートモードを設定します。
    PR201 : PR201系
    ESCP : ESC/P系
    FMPR : FMPR系
    NOPR : エミュレートなし(Printer.Canvasに出力)


■実装方法

 procedure TForm1.PGPrintBtnClick(Sender: TObject);
 var
   LPT: TNatPrnAPI;
 begin
    LPT := TNatPrnAPI.Create;
   try
     LPT.Title := 'プログラム印刷';
     LPT.Open;
     try
       NativPRN.Pstart(LPT);
       NativPRN.Ptext(LPT, 'ああアイウエオカキクケコンバビブベボパポプあ漢字');
       NativPRN.Pcrlf(LPT);
       NativPRN.Pcl2(LPT); // 1/2行設定
       NativPRN.Pcrlf(LPT);
       NativPRN.PclOFF(LPT); // 1/2行解除
       NativPRN.Pcomp(LPT); // 圧縮ピッチ
       NativPRN.Ptext(LPT, 'ああアイウエオカキクケコンバビブベボパポプあ漢字');
       NativPRN.Pcrlf(LPT);
       NativPRN.PbigT(LPT); // 縦倍角設定
       NativPRN.Ptext(LPT, 'ああアイウエオカキクケコンバビブベボパポプあ漢字');
       NativPRN.Pcrlf(LPT);
       NativPRN.Pbig4(LPT); // 4倍角設定
       NativPRN.PbigOFF(LPT); // 倍角解除
       NativPRN.Pcrlf(LPT);
       NativPRN.Pend(LPT);
     finally
       LPT.Close;
     end;
   finally
     LPT.Free;
   end;
 end;

ダウンロード



ダウンロード前に必ずお読みください。
ダウンロードを開始された場合には同意されたものとさせていただきます。
  1. 本ソフトウェアは著作権法によって保護されており、著作者および著作権は、各ソフトウェアに記載されている通りです。
  2. 本ソフトウェアは営利目的でない間柄での再配布は原則自由としますが、著作権、免責事項に関する規定については、配布先に対しても効力を有するものとします。
  3. 本ソフトウェアの内容を転載、雑誌などに添付して再配布する場合は、著作者の許諾を必要とします。
  4. 本ソフトウェアは、著作者にて動作確認を行っていますが、全ての状況下においての動作を保証しているわけではありません。ご利用前に必ず利用者の責任においてテストを行い、事前に動作確認を実施して下さい。
  5. 著作者は、本ソフトウェアによりご利用者に直接的または間接的障害が生じても、いかなる責任も負わないものとし、一切の賠償などは行わないものとします。
  6. 著作者は、本ソフトウェアに不備があっても、訂正する義務は負わないものとします。
  7. 本ソフトウェアに関し、著作者はご質問等への対応の義務はないものとします。
  8. 本ソフトウェアの仕様、記載内容はご利用者へ予告無く変更したりサービスの提供を中止する場合があります。
DownLoad (13KB)

更新履歴
2005/07/21 PrnType=NOPR(エミュレートなし、Printer.Canvasに出力)に設定した場合、1行の改行サイズをプリンタの解像度(DPI)÷6で計算しているため、割り切れない解像度のプリンタにおいて、改行がずれる(短くなる)不具合を修正しました(※NECのPR201系プリンタにおいて上記内容を確認しました)
お問い合わせ

お問い合わせは、メールでお願いします。

 メール 

Copyright (C) 2010 PC-Space. All Rights Reserved.