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 页打开。就像我在使用它后无法处理参数一样。

那么有没有人知道这个问题,或者可以看到我错在哪里?

C# 打开一个特定的 PDF 页面,从 SQL 获取数据

当我在测试应用程序中使用它时,您的代码工作正常。我现在从您的评论中注意到的是,您在/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"