CameraScanner
TsgcHTMLComponent_CameraScanner — 브라우저 자체의 네이티브 디코더로 바코드와 QR 코드를 스캔하는 실시간 카메라 패널로, 서드파티 라이브러리가 필요 없으며, 사진 촬영과 수동 입력을 항상 대체 수단으로 사용할 수 있습니다. Delphi, C++ Builder 및 .NET에서 사용할 수 있습니다.
TsgcHTMLComponent_CameraScanner — 브라우저 자체의 네이티브 디코더로 바코드와 QR 코드를 스캔하는 실시간 카메라 패널로, 서드파티 라이브러리가 필요 없으며, 사진 촬영과 수동 입력을 항상 대체 수단으로 사용할 수 있습니다. Delphi, C++ Builder 및 .NET에서 사용할 수 있습니다.
Mode와 Formats를 설정한 다음 HTML 속성을 읽습니다. 패널이 카메라를 열고 브라우저의 BarcodeDetector로 디코딩한 후 결과를 FieldName 아래에 전송합니다.
TsgcHTMLComponent_CameraScanner
카메라 뷰파인더 패널 + 숨김 필드 + 인라인 스크립트
Delphi, C++ Builder, .NET
번들로 포함할 디코더도, CDN에서 가져올 것도 없습니다. BarcodeDetector가 없는 환경에서는 패널이 이를 알리고 수동 입력과 사진 촬영으로 계속 작동합니다.
uses
sgcHTML_Component_CameraScanner;
var
oScanner: TsgcHTMLComponent_CameraScanner;
begin
oScanner := TsgcHTMLComponent_CameraScanner.Create(nil);
try
oScanner.ScannerID := 'receiving_scan';
oScanner.Mode := smBoth; // scan barcodes AND capture a photo
oScanner.Formats := 'qr_code,ean_13,code_128';
oScanner.FieldName := 'sku';
oScanner.ContinuousScan := True;
oScanner.BeepOnScan := True;
WebModule.Response := oScanner.HTML; // camera panel + hidden fields + inline script
finally
oScanner.Free;
end;
end;
// includes: sgcHTML_Component_CameraScanner.hpp
TsgcHTMLComponent_CameraScanner *oScanner = new TsgcHTMLComponent_CameraScanner(NULL);
try
{
oScanner->ScannerID = "receiving_scan";
oScanner->Mode = smBoth;
oScanner->Formats = "qr_code,ean_13,code_128";
oScanner->FieldName = "sku";
oScanner->ContinuousScan = true;
oScanner->BeepOnScan = true;
String html = oScanner->HTML; // camera panel + hidden fields + inline script
}
__finally
{
delete oScanner;
}
using esegece.sgcWebSockets;
var scanner = new TsgcHTMLComponent_CameraScanner();
scanner.ScannerID = "receiving_scan";
scanner.Mode = smBoth;
scanner.Formats = "qr_code,ean_13,code_128";
scanner.FieldName = "sku";
scanner.ContinuousScan = true;
scanner.BeepOnScan = true;
string html = scanner.HTML; // camera panel + hidden fields + inline script
가장 자주 사용하게 되는 멤버.
smBarcode, smPhoto 또는 smBoth(기본값). smBarcode는 캡처 버튼을 전혀 렌더링하지 않으며, smPhoto는 스캔 루프를 완전히 건너뜁니다.
BarcodeDetector 형식 문자열의 쉼표 목록으로, 기본값은 qr_code,ean_13,code_128이며 브라우저 디코더에 전달되는 JS 배열로 이스케이프됩니다.
sfEnvironment(기본값, 후면 카메라) 또는 sfUser(전면 카메라).
True(기본값)는 스캔 성공 후에도 계속 디코딩합니다. False는 첫 번째 스캔에 성공하면 카메라를 자동으로 정지합니다.
스캔된 값이 전송되는 숨김 필드 이름입니다. 촬영된 사진은 JPEG 데이터 URL 형태로 FieldName_photo 아래에 전송됩니다.
모든 스캔을 sgcHTMX WebSocket 브리지를 통해 전송하거나 Action으로 POST할 수 있습니다. 어느 경우든 sgcCameraScanner:scan DOM 이벤트가 항상 발생합니다.