从内存流读取存储的 PDF

2023-11-26

我正在使用 C# 和 SQLServer 2012 开发一个数据库项目。在我的一个表单中,我有一个 PDF 文件,其中包含存储在表中的一些其他信息。这是成功的,但是当我想检索存储的信息时,我在显示 PDF 文件时遇到问题,因为我无法显示它,而且我不知道如何显示它。

我读到一些文章说它无法用 Adob​​e PDF 查看器从内存流显示,有什么办法吗?

这是我从数据库检索数据的代码:

            sql_com.CommandText = "select * from incoming_boks_tbl where [incoming_bok_id]=@incoming_id and [incoming_date]=@incoming_date";
            sql_com.Parameters.AddWithValue("incoming_id",up_inco_num_txt.Text);
            sql_com.Parameters.AddWithValue("incoming_date", up_inco_date_txt.Text);
            sql_dr = sql_com.ExecuteReader();
            if(sql_dr.HasRows)
            {
                while(sql_dr.Read())
                {
                    up_incoming_id_txt.Text = sql_dr[0].ToString();
                    up_inco_num_txt.Text = sql_dr[1].ToString();
                    up_inco_date_txt.Text = sql_dr[2].ToString();
                    up_inco_reg_txt.Text = sql_dr[3].ToString();
                    up_inco_place_txt.Text = sql_dr[4].ToString();
                    up_in_out_txt.Text = sql_dr[5].ToString();
                    up_subj_txt.Text = sql_dr[6].ToString();
                    up_note_txt.Text = sql_dr[7].ToString();
                    string file_ext = sql_dr[8].ToString();//pdf file extension
                    byte[] inco_file = (byte[])(sql_dr[9]);//the pdf file
                    MemoryStream ms = new MemoryStream(inco_file);
                    //here I don't know what to do with memory stream file data and where to store it. How can i display it?
                }
            }

这个答案应该给你一些选择:如何使用 C# 渲染 pdf


过去我使用过Google的开源PDF渲染项目 -PDFium

有一个名为的 C# nuget 包Pdfium浏览器它为 PDFium 提供了一个 C# 包装器,并允许显示和打印 PDF。

它直接与 Streams 一起使用,因此不需要将任何数据写入磁盘

这是我的 WinForms 应用程序示例

    public void LoadPdf(byte[] pdfBytes)
    {
        var stream = new MemoryStream(pdfBytes);
        LoadPdf(stream)
    }

    public void LoadPdf(Stream stream)
    {
        // Create PDF Document
        var pdfDocument = PdfDocument.Load(stream);

        // Load PDF Document into WinForms Control
        pdfRenderer.Load(_pdfDocument);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从内存流读取存储的 PDF 的相关文章

随机推荐