-1

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

http://www.codeproject.com/Articles/14170/Extract-Text-from-PDF-in-C-100-NET

但不明白“文件”的含义是您计算机的整个网址。因为当我尝试它时,它说它的格式错误。

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 个参数

4

3 回答 3

1

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

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();
}
于 2013-04-17T11:17:16.940 回答
0

我认为ExtractTexttwo arguments 一个是 PDF 源文件第二个是文本目标文件

所以尝试如下,你的错误得到解决:

pdfParser.ExtractText(file,Path.GetFileNameWithoutExtension(file)+".txt");
于 2013-04-17T11:20:48.417 回答
0

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

你应该这样使用它:

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

PDFParser pdfParser = new PDFParser();
pdfParser.ExtractText(sourceFile, outputFile);

UPD:您使用它是错误的(并且您肯定会得到错误:无法将 bool 隐式转换为字符串):

string result = pdfParser.ExtractText(sourceFile, outputFile);

正确的方法是:

pdfParser.ExtractText(sourceFile, outputFile);
于 2013-04-17T11:24:05.643 回答