0

インスタンス化、プリンターを開くなど、プリンター (Star TSP100) を処理するためのすべてのメソッドを含む ActiveX コントロールを作成しました。ActiveX は com に登録されています。JavaScript を介してプリンター メソッドを使用している場合、PrintBarCode メソッドと PrintBitmap メソッドを除いてすべてのメソッドが正常に動作し、エラーがスローされます。

ビットマップの場合、私は使用しました:-

printer.PrintBitmap(PrinterStation.Receipt, path, percentWidth * lineWidth / 100, PosPrinter.PrinterBitmapCenter);

バーコードの場合:-

printer.PrintBarCode(PrinterStation.Receipt, code, BarCodeSymbology.Code93, 80, (int)(0.9 * lineWidth), PosPrinter.PrinterBarCodeCenter, BarCodeTextPosition.Below);

これらの 2 つの方法は、Visual Studio のデバッグ モードでも機能します。しかし、セットアップを作成してシステムにインストールした後、これら2つは機能しません。

エラーは次のとおりです:-

Microsoft.PointOfService.PosControlException: Method PrintBarCode threw an exception.  Attempt was made to perform an illegal or unsupported operation with the device, or an invalid parameter value was used.
   at Microsoft.PointOfService.Legacy.LegacyProxy.ThrowLegacyMethodException(String methodName, Int32 ResultCode, Exception e)
   at Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethod(String methodName, Object[]& parameters, Boolean[] byRef)
   at Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethodAndCheckImpl(String methodName, Object[]& parameters, Boolean[] byRef)
   at Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethodAndCheckImpl(String methodName, Object[] parameters)
   at Microsoft.PointOfService.Legacy.LegacyProxy.InvokeMethodAndCheck(String methodName, Object param1, Object param2, Object param3, Object param4, Object param5, Object param6, Object param7)
   at Microsoft.PointOfService.Legacy.LegacyPosPrinter.PrintBarCode(PrinterStation station, String data, BarCodeSymbology symbology, Int32 height, Int32 width, Int32 alignment, BarCodeTextPosition textPosition)
   at xyx.testclass.PrintBarCode(String code)
ErrorCode: Illegal
ErrorCodeExtended: 0
4

2 に答える 2

0

同じ問題があり、ビットマップには回避策があります。

printer.PrintBitmap(PrinterStation.Receipt, path, PosPrinter.PrinterBitmapAsIs, PosPrinter.PrinterBitmapCenter);

プリンタがビットマップをスケーリングできない可能性があります。ただし、ビットマップをプリンターに送信する前にスケーリングするのは簡単なので、これは良い回避策だと思います。

バーコードの問題については、間違ったBarCodeSymbology(EanJan13ではなくEan13S)があったとしか言えません。さらに洞察があれば、ここで共有します。

于 2012-10-12T14:48:10.710 に答える