Codeunit 9221 IDAutomation 2D Provider, source in 29
src/System Application/App/Barcode/src/IDAutomation 2D Provider/IDAutomation2DProvider.Codeunit.al64 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace System.Text;
codeunit 9221 "IDAutomation 2D Provider" implements "Barcode Font Provider 2D"
{
Access = Internal;
InherentEntitlements = X;
InherentPermissions = X;
var
CannotFindBarcodeEncoderErr: Label 'Provider %1: 2D Barcode symbol encoder %2 is not implemented by this provider!', Comment = '%1 Provider Caption, %2 = Symbology Caption';
procedure GetSupportedBarcodeSymbologies(var Result: List of [Enum "Barcode Symbology 2D"])
var
DummyEncoder2D: Interface "Barcode Font Encoder 2D";
CurrentBarcodeSymbology2D: Enum "Barcode Symbology 2D";
begin
Clear(Result);
foreach CurrentBarcodeSymbology2D in Enum::"Barcode Symbology 2D".Ordinals() do
if GetBarcodeFontEncoder2D(CurrentBarcodeSymbology2D, DummyEncoder2D) then
Result.Add(CurrentBarcodeSymbology2D);
end;
procedure EncodeFont(InputText: Text; BarcodeSymbology2D: Enum "Barcode Symbology 2D"): Text
var
BarcodeFontEncoder2D: Interface "Barcode Font Encoder 2D";
begin
if not GetBarcodeFontEncoder2D(BarcodeSymbology2D, BarcodeFontEncoder2D) then
Error(CannotFindBarcodeEncoderErr, Enum::"Barcode Font Provider 2D"::IDAutomation2D, BarcodeSymbology2D);
exit(BarcodeFontEncoder2D.EncodeFont(InputText));
end;
local procedure GetBarcodeFontEncoder2D(BarcodeSymbology2D: Enum "Barcode Symbology 2D"; var BarcodeFontEncoder2D: Interface "Barcode Font Encoder 2D"): Boolean
var
IDA2DAztecEncoder: Codeunit "IDA 2D Aztec Encoder";
IDA2DDataMatrixEncoder: Codeunit "IDA 2D Data Matrix Encoder";
IDA2DMaxiCodeEncoder: Codeunit "IDA 2D Maxi Code Encoder";
IDA2DPDF417Encoder: Codeunit "IDA 2D PDF417 Encoder";
IDA2DQRCodeEncoder: Codeunit "IDA 2D QR-Code Encoder";
begin
case BarcodeSymbology2D of
Enum::"Barcode Symbology 2D"::Aztec:
BarcodeFontEncoder2D := IDA2DAztecEncoder;
Enum::"Barcode Symbology 2D"::"Data Matrix":
BarcodeFontEncoder2D := IDA2DDataMatrixEncoder;
Enum::"Barcode Symbology 2D"::"Maxi Code":
BarcodeFontEncoder2D := IDA2DMaxiCodeEncoder;
Enum::"Barcode Symbology 2D"::PDF417:
BarcodeFontEncoder2D := IDA2DPDF417Encoder;
Enum::"Barcode Symbology 2D"::"QR-Code":
BarcodeFontEncoder2D := IDA2DQRCodeEncoder;
else
exit(false);
end;
exit(true);
end;
}