我有一个相当简单的任务:我需要读取PDF文件并写出其图像内容,同时忽略其文本内容.所以基本上我需要做"另存为文本"的补充.
理想情况下,我宁愿避免任何形式的图像内容重新压缩,但如果不可能,也可以.
是如何做到的例子?
谢谢!
使用 PdfSharp 从 PDF 中提取文本实际上非常容易,具体取决于文档类型以及您打算用它做什么。如果文本在文档中作为文本而不是图像,并且您不关心位置或格式,那么这很简单。此代码获取我正在使用的 PDF 中第一页的所有文本:
var doc = PdfReader.Open(docPath);
string pageText = doc.Pages[0].Contents.Elements.GetDictionary(0).Stream.ToString();
Run Code Online (Sandbox Code Playgroud)
doc.Pages.Count给出总页数,您可以通过doc.Pages带有索引的数组访问每一页。我不建议foreach在这里使用Linq,因为接口实现得不好。索引传递到GetDictionary是针对哪个 PDF 文档元素的 - 这可能会根据文档的生成方式而有所不同。如果您没有获得所需的文本,请尝试循环遍历所有元素。
生成的文本将充满各种 PDF 格式代码。不过,如果您需要做的只是提取字符串,则可以使用正则表达式或任何其他适当的字符串搜索代码找到您想要的字符串。如果您需要对格式或定位进行任何操作,那么祝您好运 - 据我所知,您将需要它。