ABCPdf或iTextSharp,从现有PDF文件中获取元素位置和大小

时间:2017-12-07 15:37:10

标签: .net pdf itext abcpdf

我尝试开发一个比较pdf文件的exe tu。我需要获得主PDF和生成的PDF之间的所有差异,例如图像或文本的位置和大小,文本内容以及尽可能多的数据。

这是我用iTextSharp进行的测试,试图获取我需要的数据:

  Document doc = new Document();
    PdfReader reader = new PdfReader(@"C:\tmp\PDFFlattener\Input\Interior_30087_068x1XWX6516_M_210x297_FLA_68_1_5873301420.pdf");

    for (int page = 1; page <= reader.NumberOfPages; page++)
    {
        var currentPage = reader.GetPageN(page);

        PdfDictionary pageDico = currentPage.GetAsDict(PdfName.RESOURCES);
        PdfDictionary objectDico = pageDico.GetAsDict(PdfName.XOBJECT);
        foreach (var item in objectDico)
        {

            PdfName imgRef = item.Key;
            PRStream stream = (PRStream)objectDico.GetAsStream(imgRef);
            PdfName subType = stream.GetAsName(PdfName.SUBTYPE);
            PdfName coords = stream.GetAsName(PdfName.COORDS);
            PdfName width = stream.GetAsName(PdfName.WIDTH);
            PdfName xyz = stream.GetAsName(PdfName.XYZ);
        }
    }

除SUBTYPE之外的所有PdfNames都返回空值。

是否可以获取xObject的X和Y位置?我也尝试过ABCPdf,但我的结果相同。

感谢阅读,

0 个答案:

没有答案