繁体   English   中英

如何使用 C# iTextSharp 检测 PDF 中的矩形和框

[英]How can I detect Rectangles and Boxes in PDF using C# iTextSharp

我有一个看起来像这样的 PDF 样本

在此处输入图片说明

我正在尝试使用 C# iTextSharp 检索那些矩形/框

        PdfReader reader = new PdfReader(inFileName);

        for (int i = 1; i <= reader.NumberOfPages; ++i)
        {
            strPageNumber = i.ToString();
            if (intCommentCount >= 5)
            {
                break;
            }

            PdfDictionary pagedic = reader.GetPageN(i);

            var thing = reader.GetPageContent(i);
            string converted = Encoding.UTF8.GetString(thing, 0, thing.Length);
            PdfArray rectarray = (PdfArray)PdfReader.GetPdfObject(pagedic.Get(PdfName.RECT));

            if (rectarray == null || rectarray.Size == 0)
            {
                continue;
            }
         }

然而,不幸的是,rectarray 返回为空。 我尝试了 BOX 而不是 RECT,但 rectarray 也返回为空

使用 C# iTextSharp 从 PDF 收集 BOX/RECTANGLE 对象的方法是什么

先感谢您

您可以使用PdfPig来检索这些矩形。 我不知道矩形是Path还是Annotations ,所以这里是这两种情况的代码:

using (PdfDocument document = PdfDocument.Open("file.pdf"))
{      
    for (int i = 0; i < document.NumberOfPages; i++)
    {
        var page = document.GetPage(i + 1);

        // if the rectangle are paths
        var paths = page.ExperimentalAccess.Paths;

        // if the rectangle are annotations
        var annotations = page.ExperimentalAccess.GetAnnotations().ToList();
        foreach (var annotation in annotations)
        {
            var rectangle = annotation.Rectangle;
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM