"....OpenPrinter(printerName.Normalize(), out printerHandle, IntPtr.Zero)..."
IntPtr.Zero も raw に設定する必要があるかもしれません。
プリンター、特にドット マトリックスは、DOS、CMD メソッドを使用して直接実行できます。これは、基本的な ESC/0x1b コマンド コードを使用してプリンターを制御することもできます。. 等
windowos/graphic のように、openprinter(,,printer_defaults) printer_defaults と doc-inf を設定することで、graphics と raw にすることができます。win32 SDK のリファレンスを参照してください。
生の印刷では、ESC コマンド (プリンターのマニュアルの詳細を参照) を使用して、Windows ドライバーと同じようにグラフィックを印刷できます。
raw で印刷する場合、oxoc(formfeed) 0x0doa(0x0a、0x0d、\n または改行) などの最初の 20 個の ascii のいずれかを追加するだけです。各プリンターにはわずかな ESC コマンドの違いがありますが、マスター ESC コマンドを使用すると、ほとんどのドットに対して罰金が科せられます。マトリックス類似。
raw モードの例として、 FormFeed 、 \n & \r
char cFormfeed=0x0c; // または \f
char cStr[]="1=テキスト,......@\n2=テキスト.....\r\f3=テキスト......."; // cFormfeed を使用せずに \f を使用すると解決できます
cStr > lpt1; // プリンタの dos または cmd メソッドへの出力。当然のことながら、lpt1 を利用可能にする必要があります。
プリントアウトになります
先頭ページ
1=テキスト,......@
2=テキスト.....
2ページ目は
3=テキスト.......
これが助けになることを願っています、頑張ってください。