My code works here, but takes a couple of seconds longer, and it takes longer with large files, and I wanted to know if anyone could take a look at what I have and suggest some improvements that would help to do this faster.
Goal:
This is scanning a PDF file and searching for a bitmap image of a QR code, and it will return the code for it (decoding)
private void ScanQRPdf(string imagePath) { foreach (var item in Directory.GetFiles(imagePath)) { if (Path.GetExtension(item).ToLower() == ".png") { Bitmap b = new Bitmap(imagePath); try { QRCodeDecoder decoder = new QRCodeDecoder(); String decodedString = decoder.decode(new QRCodeBitmapImage(b)); rtbpdfData.Text += decodedString + "\n"; } catch (Exception ex) { } } } } static void AddQRTag(PdfSharp.Drawing.XGraphics gfx, int xPosition, int yPosition, string QRdata, string HRdata) { gfx.DrawRectangle(XBrushes.White, xPosition, yPosition, xPosition + 55, yPosition + 85); PdfSharp.Drawing.XImage xImage = PdfSharp.Drawing.XImage.FromGdiPlusImage(BuildQR(QRdata.ToUpper(), 3, QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC, 2, QRCodeEncoder.ERROR_CORRECTION.M)); gfx.DrawImage(xImage, xPosition + 5, yPosition + 5, xImage.PixelWidth * .8, xImage.PixelWidth * .8); XFont font = new XFont("OCR B", 6); XTextFormatter tf = new XTextFormatter(gfx); tf.Alignment = XParagraphAlignment.Left; XRect layout = new XRect(xPosition + 5, yPosition + 55, 55, 30); tf.DrawString(HRdata.ToUpper(), font, XBrushes.Black, layout, XStringFormats.TopLeft); }
BB987 source share