Я пытаюсь сохранить в databse файл pdf, созданный itextsharp. Но до сих пор я не был успешным.C# 3.0 Сохранить itextsharp pdf в базу данных с помощью MemoryStream
Я использую 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 на лету (я отключил байт [] pdfDone ... и вернул MemoryStream).
Я не знаю, что может быть неправильным ... И отладки, я также мог видеть, что байт [] pdfDone имеет значение (что-то вроде 3487), но ничего не сохраняется в БД.
Заранее благодарен!
Я не вижу * никаких * кода базы данных там. Я бы также рекомендовал использовать инструкции 'using' вместо всего закрытия вручную ... кроме того, похоже, что это действительно просто проблема itextsharp. –
К сожалению, iTextSharp не реализует IDisposable, но я согласен с отсутствием кода базы данных. –
Этот код является частью метода, который возвращает массив байтов для сохранения. Код базы данных здесь не показан, и код правильный. Я обнаружил ошибку. Это была транзакция, которую я использовал. Спасибо за ваши ответы. – AndreMiranda