如何从 OpenFileDialog 获取文件路径并将其传递给 PDFReader? (C#)
How can I get the path of a file from an OpenFileDialog and pass it to a PDFReader? (C#)
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) 您不能在 static
方法中使用 class 变量,因此在这一行中访问 ofd
:
PdfReader reader = new PdfReader(ofd.FileName);
应该会导致编译器错误消息
for the non-static field 'ofd' an object instance is required.
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
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) 您不能在 static
方法中使用 class 变量,因此在这一行中访问 ofd
:
PdfReader reader = new PdfReader(ofd.FileName);
应该会导致编译器错误消息
for the non-static field 'ofd' an object instance is required.
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