检测PDF页面角上的矩形图

时间:2013-02-27 18:35:27

标签: c# asp.net pdf drawing

目前我有这种方法在页面的左上角绘制一个矩形。我想创建另一种方法,在扫描文档的四个角中的任何一个角中搜索矩形绘图。   我怎样才能编写一个方法,根据我为绘制矩形创建的内容,检查每个角落的矩形图。

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", 10, XFontStyle.Bold);
        XFont font = new XFont("OCR B", 6);
        XTextFormatter tf = new XTextFormatter(gfx);
        tf.Alignment = XParagraphAlignment.Left;

        //XStringFormat format = new XStringFormat();
        //format.Alignment = XStringAlignment.Near;
        XRect layout = new XRect(xPosition + 5, yPosition + 55, 55, 30);
        tf.DrawString(HRdata.ToUpper(), font, XBrushes.Black, layout, XStringFormats.TopLeft);
        //gfx.DrawString(HRdata, font, XBrushes.Black,layout,format);
    }

1 个答案:

答案 0 :(得分:0)

如果使用第三方pdf阅读器API在PDF文件中查找图像,可能有很多技巧。 但假设您找不到任何方法,并假设您可以阅读pdf文件并将其转换为简单图像,您可以使用图像处理技术轻松找到您的矩形。

最简单(且最健壮)的事情是使用简单的相关器查找矩形,如果您不知道方形的尺寸,则可以使用不同的矩形运行相关器的时间。

如果您需要高性能,还有其他解决方案(如果是这种情况,只需写下评论,我会指向另一个方向)