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

问题描述 投票:1回答:1

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

enter image description here

我正在尝试使用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返回为null。我尝试使用BOX而不是RECT,但rectarray也以null返回]

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

提前谢谢您

我有一个看起来像这样的PDF样本,我正在尝试使用C#iTextSharp PdfReader reader = new PdfReader(inFileName);来检索那些矩形/框。对于(int i = 1; i <= ...

c# pdf itext
1个回答
0
投票

您可以使用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 rectangles
        var annotations = page.ExperimentalAccess.GetAnnotations().ToList();
        foreach (var annotation in annotations)
        {
            var rectangle = annotation.Rectangle;
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.