【问题标题】:itextsharp text extraction fails for some pdfs某些 pdf 的 itextsharp 文本提取失败
【发布时间】:2014-03-27 18:02:36
【问题描述】:

我有几个 PDF 文件,我无法从中提取文本。这些 PDF 文件是通过将 Word 文件转换为 PDF 来创建的。 我从pdf中提取文本的主要目的是索引其文本并使其可搜索。

PdfReader reader = new PdfReader(inFileName);
for (int page = 1; page <= reader.NumberOfPages; page++)
{
    // where  strPDFText is string builder 
    strPDFText.Append(iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, page) + " ");
}                    
string str = strPDFText.ToString();

我得到一个空字符串。相同的原因可能是什么。我正在使用 Itextsharp 5.5

【问题讨论】:

  • 请分享有问题的 PDF。
  • 你能给我你的emailId,我会转发到Email ID。
  • 请查看我的个人资料。话虽如此,为了让参与者有更多机会检查文件,通常首选共享文件(例如使用公共 Dropbox 或 Google 共享)。

标签: itextsharp


【解决方案1】:

虽然 OP 提供的示例 PDF 确实表明它是 MS Word 导出文件,但它根本不包含任何文本,仅包含图像(顺便显示文本)。

PDF的内容是这样的:

 /P <</MCID 0>> BDC BT
/F1 11.04 Tf
1 0 0 1 540.1 500.95 Tm
/GS7 gs
0 g
0 G
[( )] TJ
ET
 EMC  /P <</MCID 1>> BDC q
0.000000071 488.88 612 231.12 re
W* n
468 0 0 219.05 72 500.95 cm
/Image8 Do Q
 EMC 

如您所见,实际显示的唯一文本是一个空格 ([( )] TJ),唯一剩余的内容是位图图像 (/Image8 Do)。

因此,

我得到一个空字符串。可能是什么原因造成的。

原因是您的文档中没有文字。

【讨论】:

  • 感谢您的回复。有没有办法从这些图像中提取文本?
  • 您需要OCR软件将图像中的像素转换为文本字符。
  • @user3469808 正如 Bruno 所说,您需要 OCR 软件才能做到这一点。不过,您可以使用 iText 从 PDF 中检索图像文件以将其转发到 OCR 软件。
  • 谢谢,我会寻找 OCR 库。有没有您推荐的商业\免费 OCR 库?
  • 我还没有处理 OCR,因此不知道 OCR 库的优缺点。 @BrunoLowagie,你有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
相关资源
最近更新 更多