Spelt / ZXing.Delphi

ZXing Barcode Scanning object Pascal Library for Delphi VCL and Delphi Firemonkey
Apache License 2.0
473 stars 206 forks source link

read PDF417 code #70

Closed balger closed 5 years ago

balger commented 6 years ago

Hi. It is planned to read PDF417 code in the near future. Thank you

Spelt commented 6 years ago

Hi

I personally have no plans for it. You can add it yourself though a .net conversion via: https://github.com/Redth/ZXing.Net/tree/14f3f07b740b0332ae27508039a801537d8ce9a0/Source/lib/pdf417 https://github.com/Redth/ZXing.Net/tree/14f3f07b740b0332ae27508039a801537d8ce9a0/Source/lib/pdf417

I explain the 'how to' in it in section ‘Other Barcodes?’ on https://github.com/Spelt/ZXing.Delphi https://github.com/Spelt/ZXing.Delphi

Greets Edward

On 21 Jun 2018, at 17:05, balger notifications@github.com wrote:

Hi. It is planned to read PDF417 code in the near future. Thank you

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Spelt/ZXing.Delphi/issues/70, or mute the thread https://github.com/notifications/unsubscribe-auth/AMEt1dqFViJw2KLleqPyExxtv4338V5bks5t-7ZMgaJpZM4UyQXM.

Spelt commented 5 years ago

Hi

Yeah. Well thats a start. There are a probably a few other units involved too.

Give it a real try and look as an example to the Datamatrix files.

Good luck.

Op 27 mei 2019 om 16:27 heeft newbotcreator notifications@github.com het volgende geschreven:

Hello! I tried to do as you write - but - when I export code from VS & NET Reflector - I get only liberies like: unit ZXing.PDF417; interface type public PDF417Reader = class sealed (Reader, MultipleBarcodeReader) // Methods function PDF417Reader.decode(image: BinaryBitmap): Result; begin Result := self.decode(image, nil) end;

function PDF417Reader.decode(image: BinaryBitmap; hints: IDictionary<DecodeHintType; TObject>): Result; begin resultArray := PDF417Reader.decode(image, hints, false); Result := {pseudo} (if (resultArray.Length <> 0) then resultArray[0] else nil) end;

function PDF417Reader.decode(image: BinaryBitmap; hints: IDictionary<DecodeHintType; TObject>; multiple: boolean): Result[]; var pointArray: ResultPoint[]; begin list := List.Create; result := Detector.detect(image, hints, multiple); if (result <> nil) then

    for pointArray in result.Points do
    begin
        objA := PDF417ScanningDecoder.decode(result.Bits, pointArray[4], pointArray[5], pointArray[6], pointArray[7], PDF417Reader.getMinCodewordWidth(pointArray), PDF417Reader.getMaxCodewordWidth(pointArray));
        if (not TObject.ReferenceEquals(objA, nil)) then
        begin
            item := Result.Create(objA.Text, objA.RawBytes, pointArray, BarcodeFormat.PDF_417);
            item.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, objA.ECLevel);
            other := (objA.Other as PDF417ResultMetadata);
            if (other <> nil) then
                item.putMetadata(ResultMetadataType.PDF417_EXTRA_METADATA, other);
            list.Add(item)
        end
    end;
begin
    Result := list.ToArray;
    exit
end

Sorry - but I don't understand how to use it in Delphi... I'll be very pleasure for you if you'll be upload PDF417 library in Delphi 🙏 Thank you very much

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

Spelt commented 5 years ago

You can compare the files in reflector with the already done ones in the Delphi version.