Merge branch 'release/MoveXZingUtilsCompo_01'
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
@@ -23,7 +23,8 @@
|
||||
<PackageReference Include="DeviceId" Version="6.7.0" />
|
||||
<PackageReference Include="DeviceId.Windows" Version="6.6.0" />
|
||||
<PackageReference Include="DeviceId.Windows.Wmi" Version="6.6.0" />
|
||||
<PackageReference Include="Radzen.Blazor" Version="5.1.8" />
|
||||
<PackageReference Include="Radzen.Blazor" Version="6.2.6" />
|
||||
<PackageReference Include="System.Linq.Dynamic.Core" Version="1.6.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -2,72 +2,108 @@
|
||||
@using DeviceId
|
||||
@using EgwCoreLib.Utils
|
||||
|
||||
|
||||
<div class="row small" style="font-size: 0.8rem;">
|
||||
<div class="col-6">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
Device ID
|
||||
</li>
|
||||
@if (ListDevId != null && ListDevId.Count > 0)
|
||||
{
|
||||
@foreach (var item in ListDevId)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
Sublicense
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">CodImpiego</div>
|
||||
<div class="px-1">@codImpiego</div>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">Payload</div>
|
||||
<div class="px-1">@decVal</div>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">AppKey</div>
|
||||
<div class="px-1">@appKey</div>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<button class="btn btn-info btn-sm w-100" @onclick="Regenerate">ReGen</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
Machine Info
|
||||
</li>
|
||||
@if (ListAllMacInfo != null && ListAllMacInfo.Count > 0)
|
||||
{
|
||||
@foreach (var item in ListAllMacInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
@if (ListUserInfo != null && ListUserInfo.Count > 0)
|
||||
{
|
||||
@if (isLoading)
|
||||
{
|
||||
<LoadingData DisplaySize="LoadingData.CtrlSize.Large" DisplayMode="LoadingData.SpinMode.BounceLine"></LoadingData>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="row small" style="font-size: 0.8rem;">
|
||||
<div class="col-6">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
UserInfo
|
||||
Device ID
|
||||
</li>
|
||||
@foreach (var item in ListUserInfo)
|
||||
@if (ListDevId != null && ListDevId.Count > 0)
|
||||
{
|
||||
@foreach (var item in ListDevId)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
Sublicense
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">CodImpiego</div>
|
||||
<div class="px-1">@codImpiego</div>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">Payload</div>
|
||||
<div class="px-1">@decVal</div>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">AppKey</div>
|
||||
<div class="px-1">@appKey</div>
|
||||
</li>
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<button class="btn btn-info btn-sm w-100" @onclick="Regenerate">ReGen</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
Machine Info
|
||||
</li>
|
||||
@if (ListAllMacInfo != null && ListAllMacInfo.Count > 0)
|
||||
{
|
||||
@foreach (var item in ListAllMacInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
@if (ListUserInfo != null && ListUserInfo.Count > 0)
|
||||
{
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
UserInfo
|
||||
</li>
|
||||
@foreach (var item in ListUserInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
@if (ListNetInfo != null && ListNetInfo.Count > 0)
|
||||
{
|
||||
<br />
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
NetInfo
|
||||
</li>
|
||||
@foreach (var item in ListNetInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
CpuInfo
|
||||
</li>
|
||||
@foreach (var item in ListOsInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
@@ -75,15 +111,12 @@
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
@if (ListNetInfo != null && ListNetInfo.Count > 0)
|
||||
{
|
||||
<br />
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
NetInfo
|
||||
OsInfo
|
||||
</li>
|
||||
@foreach (var item in ListNetInfo)
|
||||
@foreach (var item in ListOsInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
@@ -91,50 +124,23 @@
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
}
|
||||
<br />
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
VolInfo
|
||||
</li>
|
||||
@foreach (var item in ListVolInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
CpuInfo
|
||||
</li>
|
||||
@foreach (var item in ListOsInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<br />
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
OsInfo
|
||||
</li>
|
||||
@foreach (var item in ListOsInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<br />
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item active">
|
||||
VolInfo
|
||||
</li>
|
||||
@foreach (var item in ListVolInfo)
|
||||
{
|
||||
<li class="list-group-item d-flex justify-content-between">
|
||||
<div class="px-1">@item.Key</div>
|
||||
<div class="px-1">@item.Value</div>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
|
||||
@code {
|
||||
protected Dictionary<string, string> ListAllMacInfo { get; set; } = new Dictionary<string, string>();
|
||||
@@ -153,7 +159,22 @@
|
||||
protected string appKey = "";
|
||||
protected string decVal = "";
|
||||
|
||||
protected override void OnInitialized()
|
||||
private bool isLoading { get; set; } = true;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
isLoading = true;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
await Task.Run(() =>
|
||||
{
|
||||
GetInfo();
|
||||
});
|
||||
Regenerate();
|
||||
isLoading = false;
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
|
||||
protected void GetInfo()
|
||||
{
|
||||
string deviceId = "";
|
||||
deviceId = new DeviceIdBuilder()
|
||||
@@ -201,14 +222,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
Regenerate();
|
||||
}
|
||||
|
||||
protected void Regenerate()
|
||||
{
|
||||
isLoading = true;
|
||||
codImpiego = SubLicManager.CodImpiego();
|
||||
appKey = SubLicManager.GenKey(passphrase, false);
|
||||
decVal = SteamCrypto.DecryptString(appKey, passphrase);
|
||||
isLoading = false;
|
||||
}
|
||||
|
||||
private string passphrase = "SaltPass";
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using System.IO;
|
||||
using ZXing;
|
||||
using ZXing.Common;
|
||||
using ZXing.QrCode;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Drawing;
|
||||
using ZXing.Rendering;
|
||||
using System.Data;
|
||||
|
||||
namespace EgwCoreLib.Razor
|
||||
{
|
||||
/// <summary>
|
||||
/// Classe gestione rendering QRCode, da XZing
|
||||
///
|
||||
/// https://github.com/micjahn/ZXing.Net/
|
||||
/// https://stackoverflow.com/questions/72114518/show-an-image-stream-to-client-in-blazor-server-without-javascript
|
||||
///
|
||||
/// valutare output SVG
|
||||
/// https://www.nayuki.io/page/qr-code-generator-library#third-party-ports
|
||||
/// https://github.com/manuelbl/QrCodeGenerator
|
||||
/// https://github.com/manuelbl/QrCodeGenerator/blob/master/Demo-ASP.NET-Core/QrCodeController.cs
|
||||
/// </summary>
|
||||
public class BCodeUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Genera immagina barcode richiesta secondo dimensioni e formato
|
||||
/// </summary>
|
||||
/// <param name="dataStr"></param>
|
||||
/// <param name="hSize">altezza</param>
|
||||
/// <param name="formato">formati 1D di ZXing</param>
|
||||
/// <param name="pureBarcode">indica se SOLO barcode</param>
|
||||
/// <param name="forceUpper">indica se forzare i caratteri a maiuscolo</param>
|
||||
/// <returns></returns>
|
||||
public static Stream getImage(string dataStr, int hSize, BarcodeFormat formato, bool pureBarcode, bool forceUpper)
|
||||
{
|
||||
// se vuoto steamware...
|
||||
if (dataStr == null || dataStr == "")
|
||||
{
|
||||
dataStr = "www.steamware.net";
|
||||
}
|
||||
if(forceUpper)
|
||||
{
|
||||
dataStr = dataStr.ToUpper();
|
||||
}
|
||||
// url decode...
|
||||
dataStr = HttpUtility.UrlDecode(dataStr);
|
||||
// creo!
|
||||
EncodingOptions options = new EncodingOptions
|
||||
{
|
||||
Height = hSize,
|
||||
Margin = 0,
|
||||
PureBarcode = pureBarcode
|
||||
};
|
||||
var writer = new ZXing.Windows.Compatibility.BarcodeWriter()
|
||||
{
|
||||
Format = formato,
|
||||
Options = options
|
||||
};
|
||||
//writer.Format = formato;
|
||||
//writer.Options = options;
|
||||
// scrivo bitmap
|
||||
Bitmap pixelData = writer.Write(dataStr);
|
||||
|
||||
// Return Image
|
||||
MemoryStream ms = new MemoryStream();
|
||||
pixelData.Save(ms, ImageFormat.Png);
|
||||
ms.Position = 0;
|
||||
return ms;
|
||||
//return new FileStreamResult(ms, "image/png");
|
||||
}
|
||||
/// <summary>
|
||||
/// Genera immagina barcode richiesta secondo dimensioni e formato
|
||||
/// </summary>
|
||||
/// <param name="dataStr"></param>
|
||||
/// <param name="hSize">altezza</param>
|
||||
/// <param name="wSize"></param>
|
||||
/// <param name="formato">formati 1D di ZXing</param>
|
||||
/// <param name="forceUpper">indica se forzare i caratteri a maiuscolo</param>
|
||||
/// <returns></returns>
|
||||
public static Stream getImage2D(string dataStr, int hSize, int wSize, BarcodeFormat formato, bool forceUpper)
|
||||
{
|
||||
// se vuoto steamware...
|
||||
if (dataStr == null || dataStr == "")
|
||||
{
|
||||
dataStr = "www.egalware.com";
|
||||
}
|
||||
if (forceUpper)
|
||||
{
|
||||
dataStr = dataStr.ToUpper();
|
||||
}
|
||||
// url decode...
|
||||
dataStr = HttpUtility.UrlDecode(dataStr);
|
||||
// creo!
|
||||
QrCodeEncodingOptions options = new QrCodeEncodingOptions
|
||||
{
|
||||
DisableECI = true,
|
||||
CharacterSet = "UTF-8",
|
||||
Width = wSize,
|
||||
Height = hSize,
|
||||
Margin = 0
|
||||
};
|
||||
var writer = new ZXing.Windows.Compatibility.BarcodeWriter()
|
||||
{
|
||||
Format = formato,
|
||||
Options = options
|
||||
};
|
||||
// svrivo svg...
|
||||
var svgImage = writer.Write(dataStr);
|
||||
// scrivo bitmap
|
||||
Bitmap pixelData = writer.Write(dataStr);
|
||||
|
||||
// Return Image
|
||||
MemoryStream ms = new MemoryStream();
|
||||
pixelData.Save(ms, ImageFormat.Png);
|
||||
ms.Position = 0;
|
||||
return ms;
|
||||
//return new FileStreamResult(ms, "image/png");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -71,10 +71,12 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components" Version="6.0.14" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="6.0.14" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components" Version="6.0.36" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="6.0.36" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.1.1" />
|
||||
<PackageReference Include="System.Text.Encodings.Web" Version="6.0.1" />
|
||||
<PackageReference Include="ZXing.Net" Version="0.16.9" />
|
||||
<PackageReference Include="ZXing.Net.Bindings.Windows.Compatibility" Version="0.16.12" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
var imgStream = Utils.BCodeUtils.getImage2D(rawCode, Height, Width, ImgFormat, false);
|
||||
var imgStream = BCodeUtils.getImage2D(rawCode, Height, Width, ImgFormat, false);
|
||||
// compilo oggetto image
|
||||
MemoryStream ms = new MemoryStream();
|
||||
imgStream.CopyTo(ms);
|
||||
|
||||
@@ -0,0 +1,189 @@
|
||||
// **********************************
|
||||
// Densen Informatica 中讯科技
|
||||
// 作者:Alex Chow
|
||||
// e-mail:zhouchuanglin@gmail.com
|
||||
// **********************************
|
||||
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace ZXingBlazor.Components;
|
||||
|
||||
/// <summary>
|
||||
/// ZXing 选项类
|
||||
/// </summary>
|
||||
/// <remarks>https://zxing.github.io/zxing/apidocs/com/google/zxing/DecodeHintType.htm</remarks>
|
||||
public class ZXingOptions
|
||||
{
|
||||
/// <summary>
|
||||
/// 只解码 Pdf417 格式 / decode only Pdf417 format
|
||||
/// </summary>
|
||||
public bool Pdf417 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 单次|连续解码,默认单次 / Decode Once or Decode Continuously, default is Once
|
||||
/// </summary>
|
||||
public bool Decodeonce { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Time Between Decoding Attempts
|
||||
/// </summary>
|
||||
public int TimeBetweenDecodingAttempts { get; set; } = 10;
|
||||
|
||||
/// <summary>
|
||||
/// 解码所有编码形式,性能较差, 开启后可用 options.formats 指定编码形式.默认为 false | Decodde All Formats, performance is poor, you can set options.formats to customize specify the encoding formats. The default is false
|
||||
/// </summary>
|
||||
public bool DecodeAllFormats { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已知图像是几种可能的格式之一。
|
||||
/// </summary>
|
||||
public List<BarcodeFormat> formats { get; set; } = new List<BarcodeFormat>() {
|
||||
BarcodeFormat.AZTEC ,
|
||||
BarcodeFormat.CODABAR,
|
||||
BarcodeFormat.CODE_39,
|
||||
BarcodeFormat.CODE_93,
|
||||
BarcodeFormat.CODE_128,
|
||||
BarcodeFormat.DATA_MATRIX,
|
||||
BarcodeFormat.EAN_8,
|
||||
BarcodeFormat.EAN_13,
|
||||
BarcodeFormat.ITF,
|
||||
BarcodeFormat.MAXICODE,
|
||||
BarcodeFormat.PDF_417,
|
||||
BarcodeFormat.QR_CODE,
|
||||
BarcodeFormat.RSS_14,
|
||||
BarcodeFormat.RSS_EXPANDED,
|
||||
BarcodeFormat.UPC_A,
|
||||
BarcodeFormat.UPC_E,
|
||||
BarcodeFormat.UPC_EAN_EXTENSION,
|
||||
};
|
||||
|
||||
public bool Debug { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 如果为 true,尝试解码为倒置图像。所有配置的解码器都被简单地用倒置图像第二次调用
|
||||
///// </summary>
|
||||
//[JsonPropertyName("ALSO_INVERTED")]
|
||||
//public bool ALSO_INVERTED { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// EAN 或 UPC 条形码允许的扩展长度, 默认为 2.
|
||||
/// </summary>
|
||||
[JsonPropertyName("ALLOWED_EAN_EXTENSIONS")]
|
||||
public int[]? ALLOWED_EAN_EXTENSIONS { get; set; } //= new int[] { 2 };
|
||||
|
||||
/// <summary>
|
||||
/// 允许的编码数据长度——拒绝任何其他长度
|
||||
/// </summary>
|
||||
[JsonPropertyName("ALLOWED_LENGTHS")]
|
||||
public int[]? ALLOWED_LENGTHS { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 假设 Code 39 代码使用校验位。
|
||||
/// </summary>
|
||||
[JsonPropertyName("ASSUME_CODE_39_CHECK_DIGIT")]
|
||||
public bool? ASSUME_CODE_39_CHECK_DIGIT { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 假设条形码正在作为 GS1 条形码进行处理,并根据需要修改行为
|
||||
/// </summary>
|
||||
[JsonPropertyName("ASSUME_GS1")]
|
||||
public bool? ASSUME_GS1 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 指定解码时使用的字符编码(如果适用)
|
||||
/// </summary>
|
||||
[JsonPropertyName("CHARACTER_SET")]
|
||||
public string? CHARACTER_SET { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// ResultPoint 当发现可能的情况时,需要通过回调通知调用者, 映射到一个ResultPointCallback
|
||||
///// </summary>
|
||||
//public object NEED_RESULT_POINT_CALLBACK { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 未指定的、特定于应用程序的提示。
|
||||
/// </summary>
|
||||
[JsonPropertyName("OTHER")]
|
||||
public object? OTHER { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图像是条形码的纯单色图像。
|
||||
/// </summary>
|
||||
[JsonPropertyName("PURE_BARCODE")]
|
||||
public bool? PURE_BARCODE { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 如果为 true,则返回 Codabar 条形码中的开始和结束数字,而不是剥离它们
|
||||
/// <remark>如果为 true,则返回 Codabar 条形码中的开始和结束数字,而不是剥离它们。它们是字母,而其余的是数字。默认情况下,它们会被剥离,但这会导致它们不会被剥离</remark>
|
||||
/// </summary>
|
||||
[JsonPropertyName("RETURN_CODABAR_START_END")]
|
||||
public bool? RETURN_CODABAR_START_END { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 花更多的时间尝试寻找条形码;优化准确性,而不是速度
|
||||
/// </summary>
|
||||
[JsonPropertyName("TRY_HARDER")]
|
||||
public bool? TRY_HARDER { get; set; }
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Enumerates barcode formats known to this package. Please keep alphabetized.
|
||||
*
|
||||
* @author Sean Owen
|
||||
*/
|
||||
public enum BarcodeFormat
|
||||
{
|
||||
|
||||
/** Aztec 2D barcode format. */
|
||||
AZTEC,
|
||||
|
||||
/** CODABAR 1D format. */
|
||||
CODABAR,
|
||||
|
||||
/** Code 39 1D format. */
|
||||
CODE_39,
|
||||
|
||||
/** Code 93 1D format. */
|
||||
CODE_93,
|
||||
|
||||
/** Code 128 1D format. */
|
||||
CODE_128,
|
||||
|
||||
/** Data Matrix 2D barcode format. */
|
||||
DATA_MATRIX,
|
||||
|
||||
/** EAN-8 1D format. */
|
||||
EAN_8,
|
||||
|
||||
/** EAN-13 1D format. */
|
||||
EAN_13,
|
||||
|
||||
/** ITF (Interleaved Two of Five) 1D format. */
|
||||
ITF,
|
||||
|
||||
/** MaxiCode 2D barcode format. */
|
||||
MAXICODE,
|
||||
|
||||
/** PDF417 format. */
|
||||
PDF_417,
|
||||
|
||||
/** QR Code 2D barcode format. */
|
||||
QR_CODE,
|
||||
|
||||
/** RSS 14 */
|
||||
RSS_14,
|
||||
|
||||
/** RSS EXPANDED */
|
||||
RSS_EXPANDED,
|
||||
|
||||
/** UPC-A 1D format. */
|
||||
UPC_A,
|
||||
|
||||
/** UPC-E 1D format. */
|
||||
UPC_E,
|
||||
|
||||
/** UPC/EAN extension format. Not a stand-alone format. */
|
||||
UPC_EAN_EXTENSION
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
@@ -15,16 +15,19 @@
|
||||
<tags>EgwCoreLib Core</tags>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="BCodeUtils.cs" />
|
||||
<Compile Remove="ZXingOptions.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DeviceId" Version="6.7.0" />
|
||||
<PackageReference Include="DeviceId.Windows" Version="6.6.0" />
|
||||
<PackageReference Include="DeviceId.Windows.Wmi" Version="6.6.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="NLog" Version="5.3.4" />
|
||||
<PackageReference Include="System.Drawing.Common" Version="7.0.0" />
|
||||
<PackageReference Include="System.Management" Version="8.0.0" />
|
||||
<PackageReference Include="ZXing.Net" Version="0.16.9" />
|
||||
<PackageReference Include="ZXing.Net.Bindings.Windows.Compatibility" Version="0.16.12" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user