Sha*_*arb 9 .net c# java lucene visual-studio
我见过从pdf文件中提取文本的示例,这些文件使用ITextSharp或PDFBox.PDFBox似乎是提取文本最"可靠"的方法,但它需要许多额外的步骤.
我尝试使用此处的说明构建dll ,但我不知道如何正确构建.Net所需的文件.
我很丢失,有人可以一步一步提供"在你的.Net应用程序中包含PDFBox"吗?
Sha*_*arb 23
我终于开始工作了.我已经概述了我采用的步骤以获得一个有效的例子.我希望有人觉得这很有帮助.
下载Java JDK
下载IKVM 0.42.0.6
下载PDFBox 1.6.0-src.zip
该蚂蚁手册是有益的.
我重命名了Ant和PDFBox文件夹以缩短其名称并将它们移动到我的C:驱动器中
您必须设置环境变量.(Windows 7)右键单击"我的电脑" - >"属性" - >"高级系统设置" - >"环境变量"
我使用了下面的设置,但是根据您安装Java的位置以及放置Ant和PDF Box文件夹的位置,您的设置会有所不同.
Variable Value ANT_HOME C:\apache-ant\ JAVA_HOME C:\Program Files (x86)\Java\jdk1.7.0_01 Path ;C:\apache-ant\bin\ (Append semi-colon and path)
完成上述操作后,在命令窗口中键入"ant",如果一切设置正确,您应该得到"build.xml不存在!"消息.
编辑"pdfbox-1.6.0\pdfbox"文件夹中的build.xml文件.找到具有"您的IKVM文件夹路径"替换"."的行.
我将IKVM移到了"C:\ IKVM",所以我看起来像:
打开命令窗口并cd到"C:\ pdfbox-1.6.0\pdfbox"并输入"ant"
......然后奇迹发生了.
现在,pdfbox文件夹中应该存在一堆新文件夹.所需的dll位于bin文件夹中.我不知道为什么,但我得到了一个"-SNAPSHOT"和我所有文件的结尾(pdfbox-1.6.0-SNAPSHOT.dll).
IKVM.GNU.Classpath(也称为IKVM.OpenJDK.Classpath)不再存在,它从0.40版本开始就模块化了.它现在以几个IKVM.OpenJDK dll的形式提供.你只需要其中一些.
在Visual Studio C#中创建一个新项目
将这些文件从pdfBox bin文件夹复制到Visual C#项目bin文件夹的bin文件夹:
pdfbox-1.6.0-SNAPSHOT.dll fontbox-1.6.0-SNAPSHOT.dll commons-logging.dll
将这些文件从ikvm bin文件夹复制到Visual C#项目bin文件夹的bin文件夹:
IKVM.OpenJDK.Core.dll IKVM.OpenJDK.SwingAWT.dll IKVM.OpenJDK.Text.dll IKVM.OpenJDK.Util.dll IKVM.Runtime.dll
将引用添加到上面的IKVM dll并构建项目.
添加对pdfbox dll的引用并再次构建项目.
您现在可以编写一些代码了.下面的简单示例从输入pdf生成了一个很好的文本文件.
using System;
using System.IO;
using org.apache.pdfbox.pdmodel;
using org.apache.pdfbox.util;
namespace testPDF
{
class Program
{
static void Main()
{
PDFtoText pdf = new PDFtoText();
string pdfText = pdf.parsePDF(@"C:\Sample.pdf");
using (StreamWriter writer = new StreamWriter(@"C:\Sample.txt"))
{ writer.Write(pdfText); }
}
class PDFtoText
{
public string parsePDF(string filepath)
{
PDDocument document = PDDocument.load(filepath);
PDFTextStripper stripper = new PDFTextStripper();
return stripper.getText(document);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15227 次 |
| 最近记录: |