C# Can';无法读取pdf文件

C# Can';无法读取pdf文件,c#,itextsharp,pdftotext,C#,Itextsharp,Pdftotext,我正在尝试构建一个可以读取PDF文件的应用程序。我使用本指南: 但我不明白“文件”是什么意思,它指的是您计算机上的整个url。因为当我尝试它时,它说它的格式是错误的 String file = "C:/project/test2.pdf"; // create an instance of the pdfparser class PDFParser pdfParser = new PDFParser(); // extract the text String result = pdfPars

我正在尝试构建一个可以读取PDF文件的应用程序。我使用本指南:

但我不明白“文件”是什么意思,它指的是您计算机上的整个url。因为当我尝试它时,它说它的格式是错误的

String file = "C:/project/test2.pdf";
// create an instance of the pdfparser class
PDFParser pdfParser = new PDFParser();

// extract the text
String result = pdfParser.ExtractText(file);
错误信息:

错误1方法“ExtractText”没有重载1个参数


如果要将pdf文本提取到字符串中,请尝试使用
PdfTextExtractor.GetTextFromPage
,sampe代码:

public string ReadPdfFile(string fileName)
{
    var text = new StringBuilder();

    if (File.Exists(fileName))
    {
        var pdfReader = new PdfReader(fileName);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            var strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);

            currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }
        pdfReader.Close();
    }
    return text.ToString();
}
publicstringreadpdffile(字符串文件名)
{
var text=新的StringBuilder();
if(File.Exists(fileName))
{
var pdfReader=新的pdfReader(文件名);

对于(int page=1;page我认为
ExtractText
有两个参数

因此,请尝试以下操作,您的错误将得到解决:

pdfParser.ExtractText(file,Path.GetFileNameWithoutExtension(file)+".txt");

首先,您应该正确指定路径。 您可以从发布的codeproject链接下载测试项目

你应该这样使用它:

string sourceFile =  "C:\\Folder\\File.pdf";
string outputFile =  "C:\\Folder\\File2.txt"

PDFParser pdfParser = new PDFParser();
pdfParser.ExtractText(sourceFile, outputFile);
UPD: 您使用它是错误的(并且您肯定会遇到错误:无法将bool隐式转换为字符串):

正确的方法是:

pdfParser.ExtractText(sourceFile, outputFile);


您在路径中的
之后错过了
C
。不过,这与错误消息无关。这没有帮助,但感谢您的反馈。消息告诉您
ExtractText
方法包含多个参数。Intellisense说您需要提供哪些参数?public bool ExtractText(string-inFileName,string-outFileName)您可能希望遵循Ria的答案,并使用iTextSharp中已经内置的PDF文本解析功能(如果您使用的是当前版本),因为codeproject解决方案非常幼稚,忽略了PDF规范的大部分内容,请参见讨论“方法1”从你的
PDFParser
问题来看,我想调用这个函数吗?你想阅读你下载的类的文档,你试图使用的函数需要2个参数。在他的例子中,不是1,所以他的take 1参数,但是函数可以取2个。使用
ExtractText
方法,将pdf提取到一个文本文件中,但是htmethod extract to a string.is“filename”是完整路径吗?错误消息:错误1无法将类型“bool”隐式转换为“string”并添加exampels类。您可以这样尝试吗
Console.WriteLine(pdfParser.ExtractText(file,Path.GetFileNameWithoutExtension(file)+.txt”).ToString();
并告诉我们您收到了什么消息…@MaxTorstensson-DarkBee已经发布了方法签名
public bool-ExtractText(string-inFileName,string-outFileName)
——那么您为什么要尝试分配
string-result=pdfParser.ExtractText(…)
??错误:错误消息:错误1无法将类型“bool”隐式转换为“string”1.Max,据我所知,在这个版本的库中没有只使用一个参数的方法ExtractText,因此您应该使用输出文件。感谢您在pastebin上发布。您不能像string result=pdfParser(文件,输出)那样使用它;删除pdfParser左侧的所有内容。我尝试过,但发现错误消息:错误:错误消息:错误1无法将类型“bool”隐式转换为“string”。由于调用pdfParser(文件,输出)并试图将其附加到字符串结果,因此出现此错误。删除“string result=”
pdfParser.ExtractText(sourceFile, outputFile);