Please have a look at the attached file “bad_code”. The barcode does can’t be read. The file “good_code” works fine - I cannot see any difference… Please help!
Thanks, Oliver
Code-Sample:
Using converter As New Aspose.Pdf.Facades.PdfConverter
converter.BindPdf(dateiname)
converter.RenderingOptions.BarcodeOptimization = True
converter.DoConvert()
While converter.HasNextImage
Dim imageStream As New MemoryStream
converter.GetNextImage(imageStream, Drawing.Imaging.ImageFormat.Png)
System.IO.File.WriteAllBytes(“c:\test.png”, imageStream.GetBuffer())
Using barcodeReader As New Aspose.BarCodeRecognition.BarCodeReader(imageStream, Aspose.BarCodeRecognition.BarCodeReadType.QR + BarCodeReadType.Code128 + Aspose.BarCodeRecognition.BarCodeReadType.DataMatrix)
Do While barcodeReader.Read()
Dim barcodesString(1) As String
barcodesString(0) = barcodeReader.GetCodeText()
Loop
’ close the reader
If String.IsNullOrEmpty(result) Then result = “keine Codes gefunden”
'Loop
barcodeReader.Close()
barcodeReader.Dispose()
End Using
End While
End Using
Hi Oliver,
Thank you for contacting support. We’ve tested your sample PDF document against the latest builds of Aspose.Pdf 9.3.0 and Aspose.BarCode 6.3.0. We can recognize QR code from “bad_code.pdf” file as follows:
int pageIndex = 0;
// bind the pdf
PdfConverter converter = new PdfConverter();
converter.BindPdf(@"C:\test\bad_code.pdf");
converter.RenderingOptions.BarcodeOptimization = true;
converter.Resolution = new Aspose.Pdf.Devices.Resolution(300);
converter.DoConvert();
while (converter.HasNextImage())
{
pageIndex++;
MemoryStream pageStream = new MemoryStream();
converter.GetNextImage(pageStream, ImageFormat.Png);
using (BarCodeReader reader = new BarCodeReader(pageStream, BarCodeReadType.QR))
{
while (reader.Read())
{
Console.WriteLine("Page#" + pageIndex + " Code Text: " + reader.GetCodeText() + " Type: " + reader.GetReadType());
}
}
}
Result:
Page#1 Code Text: 7G801001020570 Type: QR
We hope, this helps.
Thank you! The following line did it:
converter.Resolution = new Aspose.Pdf.Devices.Resolution(300)
Best regards, Oliver
Hi Oliver,