C# 从内存流中读取存储的PDF
我正在使用C#和SQLServer2012进行一个数据库项目。在我的一个表单中,我有一个PDF文件,其中包含一些存储在表中的其他信息。这是成功的,但当我想要检索存储的信息时,我在显示PDF文件时遇到了问题,因为我无法显示它,也不知道如何显示它 我读到一些文章说它不能用AdobePDF查看器从内存流显示,有什么办法吗 这是我从数据库检索数据的代码:C# 从内存流中读取存储的PDF,c#,.net,pdf,memorystream,C#,.net,Pdf,Memorystream,我正在使用C#和SQLServer2012进行一个数据库项目。在我的一个表单中,我有一个PDF文件,其中包含一些存储在表中的其他信息。这是成功的,但当我想要检索存储的信息时,我在显示PDF文件时遇到了问题,因为我无法显示它,也不知道如何显示它 我读到一些文章说它不能用AdobePDF查看器从内存流显示,有什么办法吗 这是我从数据库检索数据的代码: sql_com.CommandText = "select * from incoming_boks_tbl where [i
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?
}
}
这个答案应该给你一些选择:
过去我使用过谷歌的开源PDF渲染项目- 有一个名为C#nuget的包,它在PDFium周围提供了一个C#包装器,并允许显示和打印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);
}
假设WinForms与web相反:和。编辑:当然,把我对一个琐碎问题的琐碎回答转换成评论。我不会复制现有的答案。谢谢你的好答案,但你能给我一篇文章如何将此软件包添加到visual studio 2010中,它可以像添加参考一样添加吗?@honar.cs PDFium作为。Nuget软件包管理器可以安装到VS2010中。亲爱的朋友:谢谢,我想我是按照你说的做的,请看这个链接中的图片,你安装了这两个东西吗?如果是,现在我如何使用找到它的PDFium?。再次感谢您,我想在表单的特定位置显示pdf查看器,因为它有一些其他组件?如何做到这一点?@honar.cs您最好分别搜索和询问这些问题。评论部分不是进行深入讨论的地方。谢谢