如何使用 Java SDK 开发条码扫描器应用程序。在您的 Web、移动和桌面应用程序中实施 QR 扫描功能。

扫码机

在线扫描条码 |二维码扫描仪

在本文中,我们将讨论如何使用 Java REST API 开发条码扫描器和 QR 码扫描器应用程序的细节。我们了解,在当今快节奏的经济中,条形码是供应商和商家存储产品详细信息的重要且可行的解决方案。多年来,它们已被证明是企业有价值且可行的选择。它们大大提高了效率并减少了开销。条形码既经济又可靠。在使用条码的其他好处中,下面指定的是使用它们的更多好处

  • 条形码消除了人为错误的可能性
  • 使用条形码系统可减少员工培训时间
  • 条形码用途极为广泛,可用于任何类型的必要数据收集
  • 它们可以实现精确的库存控制,从而改善库存控制
  • 此外,条形码提供更好的数据,即单个条形码可以提供库存和定价详细信息

与所有这些功能相关的是,Aspose.BarCode Cloud Java SDK 使 Java 开发人员能够使用 Java 语言在线创建和扫描条码。与我们的其他云API类似,Aspose.BarCode Cloud Java SDK需要您在Cloud Dashboard注册一个账户。如果您已经注册了一个账户,您可以继续使用它。准备好帐户后,您就可以通过 AppKey 和 AppSID 使用云服务了。

您可以考虑使用 Aspose 云存储,或使用任何第三方云存储服务进行文件存储和检索。

支持的条码符号

SDK 支持多种条码符号体系(超过 60 种),例如 EAN、UPC、Codabar、PDF417、QR、MicroQR、Postnet、Planet、RM4SCC 等。您还可以选择加载现有条码信息并将输出保存到流行图像中格式,例如 JPEGPNGGIFBMPTIFFEMFWMFSVGEXIFICON。有关支持的符号体系的完整列表,请访问 Aspose.BarCode Cloud Java SDK

生成条码

SDK 让您可以创建多种格式的线性、二维和邮政条码图像。您可以指定条形码图像属性,例如图像宽度、高度、边框样式和输出图像格式。您还可以根据您的应用程序要求指定条码类型和文本属性,例如文本位置和字体样式。它还提供了设置条形高度和以一定角度旋转条形码图像的功能。

以下示例显示了创建 Code39Standard 条形码的步骤,该条形码放置在页面的顶部居中对齐方式上。文本颜色指定为 Navy,Horizontal,Vertical 分辨率指定为 200。BarColor 指定为 Orange,背景颜色设置为银色,输出格式为 JPEG 格式。

在我们继续之前,我们建议您访问以下链接,因为在使用 cURL 命令访问 API 时需要 JWT 令牌。

卷曲

curl -X PUT "https://api.aspose.cloud/v3.0/barcode/MySample.jpeg/generate?Type=Code39Standard&Text=BarCode%20processing&TextLocation=Above&TextAlignment=Center&TextColor=Navy&FontSizeMode=Auto&Resolution=200&ResolutionX=200&BackColor=silver&BarColor=Orange&BorderColor=Blue&format=jpeg" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

请求网址

https://api.aspose.cloud/v3.0/barcode/MySample.jpeg/generate?Type=Code39Standard&Text=BarCode%20processing&TextLocation=Above&TextAlignment=Center&TextColor=Navy&FontSizeMode=Auto&Resolution=200&ResolutionX=200&BackColor=silver&BarColor=Orange&BorderColor=Blue&format=jpeg

爪哇

ApiClient client = new ApiClient(
"App SID from https://dashboard.aspose.cloud/#/apps",
"App Key from https://dashboard.aspose.cloud/#/apps");
		        
com.aspose.barcode.cloud.api.BarcodeApi api = new com.aspose.barcode.cloud.api.BarcodeApi(client);
String name = "MySample.jpeg";
String type = com.aspose.barcode.cloud.model.EncodeBarcodeType.CODE39STANDARD.getValue();	
String text = "Barcode processing API"; // String | Text to encode.
String twoDDisplayText = null;
String textLocation = com.aspose.barcode.cloud.model.CodeLocation.ABOVE.getValue();
String textAlignment = com.aspose.barcode.cloud.model.TextAlignment.CENTER.getValue();
String textColor = "Navy";
String fontSizeMode = com.aspose.barcode.cloud.model.FontMode.AUTO.getValue();
int resolution = 200;
double resolutionX = 200;
double resolutionY = 200;
String barColor = "Orange";
String format = "JPEG";
		        
try {
com.aspose.barcode.cloud.model.ResultImageInfo result = api.putBarcodeGenerateFile(
    name, 
		type, 
		text, 
		twoDDisplayText, 
		textLocation, 
		textAlignment, 
		textColor, 
		fontSizeMode, 
		(double) resolution, 
		resolutionX, 
		resolutionY, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		"Silver", 
		barColor, 
		"Blue",
		null, 
		null, 
		true, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null, 
		null,
		format);
		            
  System.out.println(result);
	} catch (ApiException e) {
  System.err.println("Exception when calling BarcodeApi#PutBarcodeGenerateFile");
	e.printStackTrace();
}
在线条码扫描器

图片 1:- 结果条码预览。

在线条形码阅读器

二维码扫描

图 2:二维码扫描仪

Cloud API 还能够识别现有条形码中的信息。您可以选择指定条码类型详细信息以便快速检索或让 API 自动确定类型。您还可以指定 ChecksumValidation 详细信息、DetectEncoding,或让 API 在运行时确定它们。

卷曲

curl -X POST "https://api.aspose.cloud/v3.0/barcode/recognize?Type=all&DetectEncoding=true" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-H  "Content-Type: multipart/form-data" \
-H  "x-aspose-client: Containerize.Swagger" -d {"image":{}}

请求网址

https://api.aspose.cloud/v3.0/barcode/recognize?Type=all&DetectEncoding=true

爪哇

// 完整的示例和数据文件,请访问 https://github.com/aspose-barcode-cloud/aspose-barcode-cloud-java/

String type = null;
String checksumValidation = ChecksumValidation.OFF.toString();
Boolean detectEncoding = null;
String preset = PresetType.HIGHPERFORMANCE.toString();

Integer rectX = null;
Integer rectY = null;
Integer rectWidth = null;
Integer rectHeight = null;
Boolean stripFNC = null;
Integer timeout = null;
Integer medianSmoothingWindowSize = null;
Boolean allowMedianSmoothing = null;
Boolean allowComplexBackground = null;
Boolean allowDatamatrixIndustrialBarcodes = null;
Boolean allowDecreasedImage = null;
Boolean allowDetectScanGap = null;
Boolean allowIncorrectBarcodes = null;
Boolean allowInvertImage = null;
Boolean allowMicroWhiteSpotsRemoving = null;
Boolean allowOneDFastBarcodesDetector = null;
Boolean allowOneDWipedBarsRestoration = null;
Boolean allowQRMicroQrRestoration = null;
Boolean allowRegularImage = null;
Boolean allowSaltAndPepperFiltering = null;
Boolean allowWhiteSpotsRemoving = null;
Double regionLikelihoodThresholdPercent = null;
List<Integer> scanWindowSizes = null;
Double similarity = null;
Boolean skipDiagonalSearch = null;
String australianPostEncodingTable = null;
String rectangleRegion = null;
String url = null;

Path currentRelativePath = Paths.get("");
String currentPath = currentRelativePath.toAbsolutePath().toString();
Path filePath = Paths.get(currentPath, "data", "sample.png");

File image = new File(String.valueOf(filePath));

BarcodeResponseList response = 
   	 api.postBarcodeRecognizeFromUrlOrContent( 
      		type,checksumValidation,detectEncoding,preset,rectX,rectY,rectWidth,rectHeight,
      		stripFNC,timeout,medianSmoothingWindowSize,allowMedianSmoothing,allowComplexBackground,
      		allowDatamatrixIndustrialBarcodes,allowDecreasedImage,allowDetectScanGap,
		allowIncorrectBarcodes,allowInvertImage,allowMicroWhiteSpotsRemoving,allowOneDFastBarcodesDetector,
      		allowOneDWipedBarsRestoration,allowQRMicroQrRestoration,allowRegularImage,allowSaltAndPepperFiltering,
      		allowWhiteSpotsRemoving,regionLikelihoodThresholdPercent,scanWindowSizes,similarity,skipDiagonalSearch,
      		australianPostEncodingTable,rectangleRegion,url,image);

assertNotNull(response);
assertFalse(response.getBarcodes().isEmpty());

BarcodeResponse barcode = response.getBarcodes().get(0);
assertEquals(DecodeBarcodeType.CODE11.getValue(), barcode.getType());
assertEquals("1234567812", barcode.getBarcodeValue());
二维码

图 3:- 二维条码预览。

如果您在上面指定的图像上运行上面的代码,响应主体将输出呈现为

响应体

{  "barcodes":  [  {  "barcodeValue":  "12345678",  "type":  "Code39Standard",  "region":  [  {  "x":  **28**,  "y":  **3**  },  {  "x":  **222**,  "y":  **3**  },  {  "x":  **222**,  "y":  **74**  },  {  "x":  **28**,  "y":  **74**  }  ],  "checksum":  ""  }  ]  }

结论

在本文中,我们了解了如何使用 Java REST API 开发条码扫描器应用程序的步骤。同样,该 API 还使您能够从图像文件中实现二维码阅读器。除了使用 Java SDK,我们还可以选择使用 cURL 命令在线扫描条码。不需要额外的软件下载或安装。如果您在使用 API 时遇到任何问题,请随时通过免费产品支持论坛 与我们联系。

相关文章

我们还建议访问以下链接以了解更多信息: