如何从OpenFileDialog获取文件的路径并将其传递给PDFReader? (C#)

时间:2018-08-23 11:53:06

标签: c# pdf openfiledialog reader

OpenFileDialog ofd = new OpenFileDialog();
private void button1_Click(object sender, EventArgs e)
{
    ofd.Filter = "PDF|*.pdf";
    if (ofd.ShowDialog() == DialogResult.OK)
    { 
           richTextBox1.Text = ofd.SafeFileName;
    }

}
public static string pdfText(string path)
{
     //this is the error, I cannot get the path of the File I chose from the OpenFileDialog
    PdfReader reader = new PdfReader(ofd.FileName); 
    string text = string.Empty;

    for (int page = 1; page <= reader.NumberOfPages; page++)
    {
        text = text += PdfTextExtractor.GetTextFromPage(reader, page);

    }
    reader.Close();
    return text;
}

我需要从OpenFileDialog获取用户选择的文件的路径,但无法将其传递给PDFReader

1 个答案:

答案 0 :(得分:0)

1)您不能在static方法中使用类变量,因此在此行中访问ofd

PdfReader reader = new PdfReader(ofd.FileName); 

应该导致编译器错误消息

  

对于非静态字段'ofd',需要一个对象实例。

2)似乎您没有在调用您的方法。您需要调用它并将文件名作为参数传递给它

private void button1_Click(object sender, EventArgs e)
{
    ofd.Filter = "PDF|*.pdf";
    if (ofd.ShowDialog() == DialogResult.OK)
    { 
           richTextBox1..Text = pdfText(ofd.SafeFileName);
    }    
}

然后您需要在方法内部使用method参数:

public static string pdfText(string path)
{
     //this is the error, I cannot get the path of the File I chose from the OpenFileDialog
    PdfReader reader = new PdfReader(path); // Here use path

现在返回的字符串应该出现在您的richTextBox1