如何使用itextsharp库仅从pdf复制高亮文本?

时间:2016-02-05 19:47:59

标签: c# pdf itextsharp

我遇到了问题,没有从PDF文件中提取突出显示的文本。 str变量始终为空。有人可以帮帮我吗?

我的代码:

private static string GetPdfHighlighText(string file, int page) {
    string nv = "";
    PdfReader reader = new PdfReader(file);
    for (int x = 1; x < reader.NumberOfPages; x++)
    {
        PdfDictionary pageDict = reader.GetPageN(x);
        PdfArray annots = pageDict.GetAsArray(PdfName.ANNOTS);
        if (annots != null)
        {

            for (int i = 1; i <= annots.Size; ++i)
            {
                PdfDictionary annotationDic = (PdfDictionary)PdfReader.GetPdfObject(annots[i]);
                PdfName subType = (PdfName)annotationDic.Get(PdfName.SUBTYPE);
                if (subType.Equals(PdfName.HIGHLIGHT))
                {

                    PdfString str = annots.GetAsString(i);

                    nv = nv + str;

                }
            }
        }
    }

    return nv; }

我正在使用ITextSharp库。 PFLibrary是iTextSharp.text.pdf命名空间。

我希望从pdf中扫描所有页面并提取所有突出显示的文本, 它是245页,但我将每页放置过滤器。我可以识别高亮注释但是没有返回带有突出显示文本的字符串

1 个答案:

答案 0 :(得分:0)

我设法使用以下代码解决了我的问题:

unzip(temp, overwrite = F, exdir = "data_raw/system-data")