gpt4 book ai didi

c# - 从内存流中读取存储的 PDF

转载 作者:太空狗 更新时间:2023-10-30 00:31:13 24 4
gpt4 key购买 nike

我正在使用 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?
}
}

最佳答案

这个答案应该给你一些选择:How to render pdfs using C#


以前我用过谷歌的开源PDF渲染项目-PDFium

有一个名为 PdfiumViewer 的 C# nuget 包它为 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);
}

关于c# - 从内存流中读取存储的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29030723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com