C# 3.0 Сохранить itextsharp PDF в базу данных, используя MemoryStream

Я пытаюсь сохранить в базе данных PDF-файл, созданный itextsharp. Но я до сих пор не был успешным.

Я использую Linq для sql.

Вот код:

            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;

Он не выдает ошибки, но ничего не сохраняет в БД. Поле БД является типом поля "изображение". Я также использую этот код для рендеринга PDF на лету (я обрезал byte[] pdfDone... и возвращаю MemoryStream).

Я не знаю, что может быть не так... И отладка, я также мог видеть, что byte [] pdfDone имеет значение (что-то вроде 3487), но ничего не сохраняется в БД.

Заранее спасибо!

1 ответ

Решение
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;
}
Другие вопросы по тегам