以下のTopicでバージョンアップして追加の確認です。
https://forum.aspose.com/t/topic/280773
Aspose.BarCode for Java 24.6から
QREncodeMode.BYTESが「非推奨」となりましたが、
「廃止」ではなくまだ使用できる認識で合っていますか?
今回、22.12から24.6へバージョンアップしましたが、
QREncodeMode.BYTESを指定し作成されるQRコードのQRバージョンが低く作成され、
また「AUTO」で作成したイメージと一致したため、24.6での使用可否を確認させてください。
また、既に使用できないのであれば22.12での作成条件で作成されるQRコードと同じイメージを
24.6で作成する方法を教えてください。
<22.12の生成条件>
QrVersion:AUTO
QrErrorLevel:M
QREncodeMode:BYTES
@mio.kazuhisa,
詳細をありがとうございます。
新しいバージョンの API で QREncodeMode.BINARY の使用をお試しください。
com.aspose.barcode.generation.BarcodeGenerator generator = new com.aspose.barcode.generation.BarcodeGenerator(com.aspose.barcode.generation.EncodeTypes.QR);
generator.setCodeText("12345TEXT");
generator.getParameters().getBarcode().getQR().setQrEncodeMode(QREncodeMode.BINARY);
generator.getParameters().getBarcode().getQR().setQrVersion(QRVersion.AUTO);
generator.getParameters().getBarcode().getQR().setQrErrorLevel(QRErrorLevel.LEVEL_M);
generator.save("d:\\files\\out1.png");
問題がまだ解決しない場合は、詳細、サンプル コード、リソース ファイルをお知らせください。
回答いただいた内容で試してみましたが、BINARYとAUTOで同じQRコードが作成されました。
文字列は以下の152桁を与えて生成しておりますので、「BINARY」だとバージョン8でされると思いますが、バージョン6で作成されました。
文字列(152桁):JT69930 26252C1 10020104022023110902 P2620 855895905209010000150FTP362 0001ZZ/AK- 12 K4
BINARY_24.6.png ・・・ バージョン24.6で「QREncodeMode.BINARY」で生成したQRコード
AUTO_24.6.png ・・・ バージョン24.6で「QREncodeMode.AUTO」で生成したQRコード
BYTES_22.12.png ・・・ バージョン22.12で「QREncodeMode.AUTO」で生成したQRコード
BINARY_24.6.png (7.8 KB)
BYTES_22.12.png (10.0 KB)
AUTO_24.6.png (7.9 KB)
QRコード生成に使用したサンプルコード
private ByteArrayInputStream getQRCodeImage(String code, String version, String level, String encodeMode) throws Exception {
BarcodeGenerator generator = new BarcodeGenerator(
com.aspose.barcode.generation.EncodeTypes.QR,
code);
BaseGenerationParameters baseParams = generator.getParameters();
BarcodeParameters barcodeParams = baseParams.getBarcode();
QrParameters qrParams = barcodeParams.getQR();
qrParams.setQrErrorLevel(QRErrorLevel.LEVEL_M);
qrParams.setQrEncodeMode(QREncodeMode.BINARY);
qrParams.setQrEncodeType(QREncodeType.FORCE_QR);
qrParams.setQrVersion(QRVersion.AUTO);
barcodeParams.getCodeTextParameters().setLocation(CodeLocation.NONE);
ByteArrayOutputStream os = new ByteArrayOutputStream();
generator.save(os, BCIF);
return new ByteArrayInputStream(os.toByteArray());
}
@mio.kazuhisa,
サンプル コード セグメントと画像ファイルをありがとうございます。
はい、これは新しいバージョンの API を使用した場合に想定される動作です。setQrVersion() メソッドを使用して、コード内で希望するバージョンを設定できます。