我想阅读一些内容pdf文件。我刚刚开始进入这些东西之前我只是想知道正确的做法是什么。 在这种情况下,ItextSharp阅读器可能会有所帮助,因此我使用以下方法将pdf转换为文本:
public static string pdfText(string path)
{
PdfReader reader = new PdfReader(path);
string text = string.Empty;
for(int page = 1; page <= reader.NumberOfPages; page++)
{
text += PdfTextExtractor.GetTextFromPage(reader,page);
}
reader.Close();
return text;
}
我仍然想知道这种方法是否合适,或者我是否应该将此pdf转换为excel,然后阅读我想要的内容。
专业人士的想法将不胜感激。
答案 0 :(得分:0)
使用iText,您还可以选择用于提取文本的特定策略。但请记住,这始终是一个启发式过程。
Pdf文档基本上只包含为查看器呈现文档所需的指令。所以没有“文本”的概念。更像是“在420,890处画出角色A”。
为了使任何文本提取起作用,它需要猜测两个字符何时足够接近它们应该连接在一起,以及何时它们应该分开。
巧合的是,iText根据正在使用的字体中单个空格字符的宽度来执行此操作。
请记住,也可能有ActualText(这是一种隐藏在文档中的文本,仅用于提取。它使文档可以呈现像“œ”这样的字符(连字版本) ),被提取为“oe”(非结合版本)。
根据您的输入文档,您可能希望查看ITextExtractionStrategy的不同实现。