首先,您使用什么版本的Aspose.PDF和Aspose.Barcode?因为我在上一个Aspose.Barcode(开发版本)上尝试过pdf文件,它被很好地识别。
string lFileName = @"d:\save\rec\merged.pdf";
var currentPageNumber = 0;
var barcodePageNumbers = new List<int>();
using (Aspose.Pdf.Facades.PdfConverter converter = new Aspose.Pdf.Facades.PdfConverter())
{
converter.BindPdf(lFileName);
converter.RenderingOptions.BarcodeOptimization = true;
converter.DoConvert();
while (converter.HasNextImage())
{
currentPageNumber++;
using (var ms = new MemoryStream())
{
converter.GetNextImage(ms);
ms.Seek(0L, SeekOrigin.Begin);
BarCodeReader reader = new BarCodeReader(ms, DecodeType.Code128);
while (reader.Read())
{
var text = reader.GetCodeText();
barcodePageNumbers.Add(currentPageNumber);
}
}
}
}
MessageBox.Show(string.Join(";", barcodePageNumbers.ToArray()));
page_2.tiff
-完整图像
page2_cut.png
-剪切图像。
两者都得到了很好的认可。
当前的解决方法:如果你知道可能的条形码区域,你可以用SetBarCodeImage(位图值,矩形区域)设置条形码识别区域,这有助于当前的梯度检测器检测到如此嘈杂的区域。