C# 打开一个特定的 PDF 页面,从 SQL 获取数据
本文关键字:页面 PDF 数据 获取 SQL 一个 | 更新日期: 2023-09-27 18:34:46
在我的项目中,我想打开一个特定的pdf页面。我从stackoverflow中找到了一个代码,它在这里工作得很好,这是代码
private void button1_Click(object sender, EventArgs e)
{
startInfo.FileName = @"C:'Program Files (x86)'Foxit Software'Foxit Reader'FoxitReader.exe";
startInfo.Arguments = "/A '"page=3'" '"C:''Users''test.pdf";
Process.Start(startInfo);
}
然而,当我想从 sql 获取startInfo.Arguments's
数据时,这段代码在 c# 中运行良好,它只打开我用 button1_Click
打开的最后一页。
这就是我尝试使用 sql 获取数据的方式;
SqlCommand sqlCmd = new SqlCommand("Select * From table ", baglanti);
baglanti.Open();
SqlDataReader reader = sqlCmd.ExecuteReader();
try
{
while (reader.Read())
{
if (reader[1].ToString() == "pdf")
{
startInfo.FileName = @reader[4].ToString();
startInfo.Arguments = reader[3].ToString();
Process.Start(startInfo);
}
}
baglanti.Close();
reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
另一件事是,在我打开一个特定的 pdf 页面之后,比如第 15 页,然后我想从窗口打开 pdf,通常它也从第 15 页打开。就像我在使用它后无法处理参数一样。
那么有没有人知道这个问题,或者可以看到我错在哪里?
当我在测试应用程序中使用它时,您的代码工作正常。我现在从您的评论中注意到的是,您在/
和A
之间的争论中有一个空间.删除它并确保指向 PDF 的路径正确(数据库行中没有双转义序列或类似内容(。因此,您的输出应如下所示才能使其正常运行:
reader[1]: "pdf"
reader[3]: "/A '"page=1'" '"C:''Users''dzcgkv''Desktop''Kiosk''EOP-HPV_006_DHPV_HİDROLİK_MONTAJ.pdf'""
reader[4]: "C:''Program Files (x86)''Foxit Software''Foxit Reader''FoxitReader.exe"