【问题标题】:Detecting a rectangle drawing on corners of a PDF Page检测 PDF 页面角上的矩形绘图
【发布时间】:2013-03-01 22:51:02
【问题描述】:

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

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);
    }

【问题讨论】:

  • 你想用图像处理技术找到矩形吗?
  • @OopsUser 我不确定什么是最有效的。我正在阅读有关使用 itextSharp 的信息,但我不确定什么是最好的方法。在页面的所有四个角中查找图像更好还是检查一个角并旋转文档直到找到图像(位图)。

标签: c# asp.net pdf drawing


【解决方案1】:

可能有许多技术可以使用 3rd 方 pdf 阅读器 API 在 PDF 文件中查找图像。 但是假设您找不到任何方法,并且假设您可以读取 pdf 文件并将它们转换为简单的图像,您可以使用图像处理技术很容易地找到您的矩形。

最简单(且可靠)的方法是使用简单的相关器来查找您的矩形,如果您不知道正方形的尺寸,您可以使用不同的矩形运行相关器多次。

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

【讨论】:

  • 我需要高性能,您能否将我重定向到该解决方案!
猜你喜欢
  • 1970-01-01
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 2012-12-15
相关资源
最近更新 更多