【问题标题】:Can I use Telerik Document Processing to read PDF content?我可以使用 Telerik Document Processing 阅读 PDF 内容吗?
【发布时间】:2018-05-03 22:51:01
【问题描述】:

我正在开展一个项目,我可以使用 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()}");
                }
            }
        }

我已经在许多文档上对此进行了测试,但是虽然它似乎选择了正确的页数,但每个页面都报告 HasContentfalse 并且 Content 集合是空的。

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

【问题讨论】:

    标签: c# .net pdf telerik


    【解决方案1】:

    好的。这是一个非常奇怪的交易,但在一位同事的帮助下,我们成功地完成了这项工作。原来区别在于你如何应用FileStream

    所以不是

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

    我们用过

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

    其他一切都一样 - 它可以工作。

    【讨论】:

    • 这让我发疯了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-02-20
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多