【发布时间】: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()}");
}
}
}
我已经在许多文档上对此进行了测试,但是虽然它似乎选择了正确的页数,但每个页面都报告 HasContent 是 false 并且 Content 集合是空的。
我认为我应该能够以这种方式逐步浏览 PDF 内容元素是不是不正确?
【问题讨论】: