Vb.net 解析Microsoft Office和PDF文档的最佳方法是什么?
我正在使用VB9(VS2008)和Lucene.NET开发一个桌面搜索引擎。 Lucene.NET中的索引器只接受原始文本数据,无法直接从Microsoft Office(DOC、DOCX、PPT、PPTX)和PDF文档中提取原始文本。Vb.net 解析Microsoft Office和PDF文档的最佳方法是什么?,vb.net,pdf,ms-office,parsing,lucene.net,Vb.net,Pdf,Ms Office,Parsing,Lucene.net,我正在使用VB9(VS2008)和Lucene.NET开发一个桌面搜索引擎。 Lucene.NET中的索引器只接受原始文本数据,无法直接从Microsoft Office(DOC、DOCX、PPT、PPTX)和PDF文档中提取原始文本。 从这些文件中提取原始文本数据的最佳方法是什么?您可以像Windows桌面搜索一样,使用实现IFilter界面的组件 我只能在这里谈论MS Office文档。有几种方法可以做到这一点: 使用COM自动化 使用以更易访问的格式输出文档的转换器 使用第三方库
从这些文件中提取原始文本数据的最佳方法是什么?您可以像Windows桌面搜索一样,使用实现IFilter界面的组件
- 使用COM自动化
- 使用以更易访问的格式输出文档的转换器
- 使用第三方库
- 使用Microsoft的OpenXMLSDK
“C:\Program Files\Microsoft Office\Office12\wordconv.exe”-oice-nme
卓越:
"C:\Program Files\Microsoft Office\Office12\excelcnv.exe" -oice <input file> <output file>
“C:\Program Files\Microsoft Office\Office12\excelcnv.exe”-oice
幻灯片:
"C:\Program Files\Microsoft Office\Office12\ppcnvcom.exe" -oice <input file> <output file>
“C:\Program Files\Microsoft Office\Office12\ppcnvcom.exe”-oice
对于PDF,您可以使用我公司的具有文本提取功能的组件
这正是您为从PDF中提取文本而编写的代码:
public String ReadTextFromPages(Stream s)
{
using (PdfTextDocument doc = new PdfTextDocument(s))
{
PdfTextReader rdr = doc.GetPdfTextReader();
return rdr.ReadToEnd();
}
}
如果我能补充一点——为了对所有神圣事物的热爱,请使用FoxIt PDF IFilter。32位版本是免费的。它比Adobe的更快、更稳定。
public String ReadTextFromPages(Stream s)
{
using (PdfTextDocument doc = new PdfTextDocument(s))
{
PdfTextReader rdr = doc.GetPdfTextReader();
return rdr.ReadToEnd();
}
}