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
答案 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