パッケージcn.com.utils。 輸入com.google.zxing.BarcodeFormat。 輸入com.google.zxing.EncodeHintType。 輸入com.google.zxing.MultiFormatWriter; 輸入com.google.zxing.client.j2se.MatrixToImageWriter; 輸入com.google.zxing.common.BitMatrix; 輸入com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; 輸入lombok.extern.slf4j.Slf4j; 輸入org.apache.commons.io.FileUtils。 輸入org.springframework.stereotype.Component; 輸入org.springframework.util.Base64Utils。 インポートのjava.io.File; インポートjava.io.FileInputStream; インポートjava.nio.file.Path、 インポートのjava.util.HashMap; インポートjava.util.Map; パブリック クラスBarUtils { / ** *バーコードを描画 * * @paramの内容を含むバーコードを生成するために、コンテンツ * @returnの戻り生成されたビットマップストリップ * / パブリック 静的ファイルcreateBarcode(文字列のコンテンツ)スロー例外{ ファイナル INT幅= 180 ; 最終 int型の高さ= 50 ; 最終文字列形式=「PNG」。 // の設定パラメータ 地図<EncodeHintType、オブジェクト> =ヒント新しい新しいのHashMap <> ;() hints.put(EncodeHintType.CHARACTER_SET、 "UTF-8" ); // フォールトトレランスレベルHは、最高レベルのピックアップ hints.put(EncodeHintType.ERROR_CORRECTIONを、ErrorCorrectionLevel.H); MultiFormatWriterライター = 新しい新しいMultiFormatWriter(); // 順序行列変換パラメータを用いて変換する画像データは、次のとおり符号化されたコンテンツは、パラメータ設定、入力画像符号化幅、生成された画像の高さを生成 bitMatrix bitMatrix = ライター。エンコード(コンテンツ、BarcodeFormat.CODE_128、幅、高さ、ヒント); パスファイル = File.createTempFile( "message_barcode _" ,. "PNG").toPath(); MatrixToImageWriter.writeToPath(bitMatrix、フォーマット、ファイル); リターンfile.toFile(); } / ** *描画バー * * @paramのファイルは、ファイルが符号化される * @returnの文字列はbase64エンコード後に返さ * / パブリック 静的文字列encodeImage (ファイルファイル)がスロー例外{ FileInputStreamののFileInputStream = FileUtils.openInputStream(ファイル); バイト []バッファ= 新しい新しい バイト [(INT )file.length()]; FileInputStream.read(緩衝液); fileInputStream.close()。 リターンBase64Utils.encodeToString(バッファ)。 } }
バーコード生成ツール