我可以使用Telerik文档处理来阅读PDF内容吗?

时间:2018-05-03 22:51:01

标签: c# .net pdf telerik

我正在开发一个Telerik的文档处理库可供我使用的项目,我希望我能用它来读取PDF文件并搜索我可以使用的特定文本用于其他处理。虽然这样做的代码看起来很简单,但我实际上并没有得到预期的结果。这是我聚集在一起的概念证据:

        var fs = new FileStream("..\\some.pdf", FileMode.Open);

        RadFixedDocument doc = new PdfFormatProvider(fs).Import();

        var pageCt = 0;
        var elementCt = 0;
        foreach (var page in doc.Pages) {
            pageCt += 1;
            Console.WriteLine($"Page {pageCt}, (Has content: {page.HasContent}, {page.Content.Count})");
            foreach (var contentEl in page.Content) {
                elementCt += 1;
                Console.WriteLine($"Element {elementCt}");
                if (contentEl is TextFragment) {
                    string text = (contentEl as TextFragment).Text;
                    Console.WriteLine(text);
                    // if (text.Contains("{{CustomTag}}")) {
                    //     Console.WriteLine(text);
                    // } else {
                    //     Console.Write(".");
                    // }
                }
                else {
                    Console.WriteLine($"Content Type: {contentEl.GetType().ToString()}");
                }
            }
        }

我已在多个文档中对此进行了测试,但是虽然它似乎选择了正确的页数,但每个页面报告HasContentfalseContent集合为空

我认为我应该能够以这种方式逐步浏览PDF内容元素,这是不正确的?

1 个答案:

答案 0 :(得分:1)

行。这是一个非常奇怪的交易,但在同事的帮助下,我们设法让这个工作。事实证明,区别在于你如何应用FileStream

所以而不是

RadFixedDocument doc = new PdfFormatProvider(fs).Import();

我们使用了

RadFixedDocument doc = new PdfFormatProvider().Import(fs);

其他一切都一样 - 它有效。