Я пытаюсь сохранить в базе данных файл 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), но в БД ничего не сохраняется.
Заранее спасибо!
using
вместо всего ручного закрытия ... кроме этого, похоже, что это действительно проблема itextsharp. - person Jon Skeet   schedule 03.09.2009