0

これは全体像の質問です...しかし、POSを使用しようとした後に発生している問題の詳細もあります。私は数日間グーグルをしています...そして私は言わなければなりません、私はこれを整理するのに苦労しています。

そのため、USB経由でXP上のVB.NET 2010(最終的にはWindows Embedded POSReadyで実行)を使用してEPSON-TM-T88VサーマルPOSプリンターに簡単なレシートを印刷する必要があります。

印刷する必要があるのは、テキストとロゴだけです。ロゴをプリンターに保存しています。そのため、EpsonのESC/POSコマンドを使用する必要があります。

では、Microsoft.PointOfServiceを使用するのは理にかなっていますか?いくつかのエスケープシーケンスをプリンタに送信するために通過することがたくさんあるようです!

どうやら、PointOfServiceシステムはVB.net 2010で動作するように更新されていないようです(詳細は以下を参照)。そのため、間違ったパスを使用しているのではないかと思います。

========================

これが正しい道であるなら...これが私がしたことと私が立ち往生しているところです。

VB 2010でPointOfServiceクラスを使用しようとしている人のために:まず、POS.net(Microsoft.PointOfService)をダウンロードしてインストールする必要があります-MSを無料でダウンロードしてください。次に、vb.netプロジェクトに参照を追加する必要があります。実行しようとすると、おそらく次のようなエラーが発生します。

{"このメソッドは、.NET Frameworkによって廃止されたCASポリシーを明示的に使用します。互換性の理由からCASポリシーを有効にするには、NetFx40_LegacySecurityPolicy構成スイッチを使用してください。http://go.microsoft.com/fwlink/を参照してください。詳細については、 ?LinkID =155570を参照してください。"}これを修正する方法については、さまざまなリンクがあります...構成ファイルを修正する必要があります。そのうちの1つを次に示します。http: //social.msdn.microsoft.com/Forums/en-US/posfordotnet/thread/9b3e6f34-de26-4a36-ab8e-13722f53b9e4/ 2010の場合、明らかにQTagent32.exeで修正する必要があります。 .configおよびQ​​TAgent.exe.config。

OK、それで私はこれをすべてやりました。しかし、推奨される修正を適用した後、スタックのペースが異なるため、CASポリシーエラーが再び発生しました。システムへの最初の呼び出しで、CASエラーが発生します。

at Microsoft.PointOfService.Management.Explorer.CreateExplorer()
   at Microsoft.PointOfService.PosExplorer.LoadExplorer()
   at Microsoft.PointOfService.PosExplorer.Initialize()
   at Microsoft.PointOfService.PosExplorer..ctor()

他にアイデアはありますか?ありがとうございました :-)

4

1 に答える 1

0

POSプリンターに印刷するためだけにPOSパッケージ全体を使用する必要はありません。代わりに、バイトをプリンタに直接書き込むだけです。これは、Epson POS/ESCエスケープシーケンスを使用したVB.net4.0で機能しました。

手順は次のとおりです: http ://support.microsoft.com/kb/322090

基本的に、rawprinterhelperクラスを使用しました。次に、エスケープシーケンスを直接送信できます。

PInvokeStackImbalanceエラーが発生しました。rawprinterhelperが機能するには、この1つの変更が必要です。コードは次のようになっている必要があります(pdパラメーターはlongではなく整数です)。

<DllImport("winspool.Drv", EntryPoint:="OpenPrinterW", _
      SetLastError:=True, CharSet:=CharSet.Unicode, _
       ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
   Public Shared Function OpenPrinter(ByVal src As String, ByRef hPrinter As  intPtr, ByVal pd As Integer) As Boolean
  End Function

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/13fce4f7-e779-4ce1-b421-1de6007595fe/

于 2012-01-25T15:25:47.293 に答える