Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#3.0使用MemoryStream将itextsharp pdf保存到数据库_C#_Pdf_Itextsharp_Memorystream - Fatal编程技术网

C#3.0使用MemoryStream将itextsharp pdf保存到数据库

C#3.0使用MemoryStream将itextsharp pdf保存到数据库,c#,pdf,itextsharp,memorystream,C#,Pdf,Itextsharp,Memorystream,我正试图将itextsharp生成的pdf文件保存到数据库中。但是,到目前为止我还没有成功 我正在使用LINQtoSQL 代码如下: MemoryStream ms = new MemoryStream(); Document d = new Document(PageSize.A4, 60, 60, 40, 40); PdfWriter w = PdfWriter.GetInstance(d, ms);

我正试图将itextsharp生成的pdf文件保存到数据库中。但是,到目前为止我还没有成功

我正在使用LINQtoSQL

代码如下:

            MemoryStream ms = new MemoryStream();
            Document d = new Document(PageSize.A4, 60, 60, 40, 40);
            PdfWriter w = PdfWriter.GetInstance(d, ms);
            w.CloseStream = false;

            string txtTemplate = "";
            Encoding en = Encoding.GetEncoding("iso-8859-1");
            StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath("~/Content/templates/CessaoDireitosDica.txt"), en);
            txtTemplate  = sr.ReadToEnd();
            sr.Close();
            string conselhos = "";

            Font font = new Font(Font.HELVETICA, 11, Font.NORMAL);
            font.SetColor(0xC6, 0xC6, 0xC6);

            Paragraph txtBody = new Paragraph(txtTemplate, font);

            txtBody .SetAlignment(ElementTags.ALIGN_JUSTIFIED);

            d.Open();
            d.Add(txtBody);
            d.Close();

            byte[] pdfDone = ms.ToArray();
            w.Flush();
            ms.Flush();
            ms.Close();

            return pdfDone;
它不会抛出错误,但不会在DB中保存任何内容。DB字段是“图像”字段类型。 我还使用这段代码动态呈现pdf(我切断字节[]pdfDone…并返回MemoryStream)

我不知道会出什么问题。。。在调试过程中,我还可以看到byte[]pdfDone有一个值(类似于3487),但没有任何内容保存到DB中


提前谢谢

我没有看到任何数据库代码。我还建议使用
语句而不是所有手动关闭。。。除此之外,这听起来似乎只是itextsharp的问题。不幸的是,itextsharp没有实现IDisposable,但我同意缺少数据库代码。此代码是返回要保存的字节数组的方法的一部分。这里没有显示数据库代码,代码是正确的。我发现了错误。这是在我使用的一项交易上。谢谢你的回复。
function byte[] CreatePdf(){
            byte[] result;
            using (MemoryStream ms = new MemoryStream())
            {
                Document pDoc = new Document(PageSize.A4, 0, 0, 0, 0);
                PdfWriter writer = PdfWriter.GetInstance(pDoc, ms);
                pDoc.Open();

                //here you can create your own pdf.

                pDoc.Close();
                result = ms.GetBuffer();
            }

            return result;
}