Вопрос по .net, memorystream, c#, pdf – Читать сохраненный PDF из памяти

4

Я работаю над проектом базы данных с использованием C # и SQLServer 2012. В одной из моих форм у меня есть файл PDF с некоторой другой информацией, которая хранится в таблице. Это работает успешно, но когда я хочу получить сохраненную информацию, у меня возникает проблема с отображением файла PDF, потому что я не могу отобразить его и не знаю, как его отобразить.

Я читал некоторые статьи, в которых говорилось, что их нельзя отобразить в программе просмотра Adobe PDF из потока памяти, есть ли способ для этого?

Это мой код для извлечения данных из базы данных:

            sql_com.CommandText = "select * from incoming_boks_tbl where [incoming_bok_id][email protected]_id and [incoming_date][email protected]_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?
                }
            }
Предполагая WinForms в отличие от веб:записать MemoryStream в файл а такжезапустить систему просмотра PDF по умолчанию, Редактировать: конечно, конвертировать мой тривиальный ответ в тривиальный вопрос в комментарий. Я не собираюсь копировать существующие ответы. CodeCaster

Ваш Ответ

1   ответ
8

Как визуализировать PDF с использованием C #

В прошлом я использовал проект рендеринга PDF с открытым исходным кодом Googles -PDFium

Существует пакет Cget nugetPdfiumViewer который дает оболочку C # вокруг PDFium и позволяет отображать и распечатывать PDF-файлы.

Он работает напрямую с потоками, поэтому не требует записи данных на диск

Это мой пример из приложения 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);
    }
спасибо за хороший ответ, но можете ли вы дать мне статью о том, как добавить этот пакет в Visual Studio 2010, его можно добавить, как добавить ссылку? Hunar A.Ahmed
@ honar.cs, который вы лучше всего ищете и задаете эти вопросы отдельно. Раздел комментариев не место для расширенных обсуждений. Спасибо Paddy
и я хочу, чтобы отобразить PDF-просмотра в определенном месте в моей форме, потому что он имеет некоторые другие компоненты? как это сделать? Hunar A.Ahmed
@ honar.cs PDFium доступен какПакет Nuget, Менеджер пакетов Nuget может быть установлен в VS2010 послеэти инструкции Paddy
дорогой друг, спасибо, я думаю, что я делаю то, что вы сказали, см. фото в этой ссылкеpostimg.org/image/h8e4p627dВы сделали это две вещи? если да, то как мне использовать PDFium, где я его нашел? еще раз спасибо Hunar A.Ahmed

Похожие вопросы