【发布时间】:2013-04-01 18:00:33
【问题描述】:
我需要对从 PDF 文档中提取的数据进行一些分析。
使用iTextSharp,我使用PdfTextExtractor.GetTextFromPage 方法从PDF 文档中提取内容,它以一行长的形式返回给我。
有没有办法逐行获取文本,以便我可以将它们存储在数组中?这样我就可以逐行分析数据,这将更加灵活。
下面是我使用的代码:
string urlFileName1 = "pdf_link";
PdfReader reader = new PdfReader(urlFileName1);
string text = string.Empty;
for (int page = 1; page <= reader.NumberOfPages; page++)
{
text += PdfTextExtractor.GetTextFromPage(reader, page);
}
reader.Close();
candidate3.Text = text.ToString();
【问题讨论】:
-
Xander几个问题.. 首先PdfReader(urFileName)` 会在通话期间一次读取所有行吗..?如果是这样,那么您可能需要将 for 循环更改为 while 循环并调用reader.ReadLine()方法。我正在寻找如何使用 StreamReader 类正常读取让我知道是否有 .ReadLine() 方法 @987654321 @查看此链接 -
嗨@DJKRAZE 是的,PdfReader(urlFileName1) 一次读取所有行。我认为 iTextSharp 中没有 .ReadLine() 方法。去了他们的API 并找不到它。你能做一个例子来说明你对while循环的意思吗?
-
看看这个
Previous Stackoverflow发帖应该指出你正确的方向stackoverflow.com/questions/2550796/… -
PdfTextExtractor.GetTextFromPage(reader, page)使用LocationTextExtractionStrategy反过来在文本行更改时插入'\n'。如果它不适合你,那是有问题的。因此,您能否提供 PDF 以供检查? -
尝试 text.Replace("\n","
")
标签: c# pdf itext extract carriage-return