3
itextsharpによって生成されたpdfファイルをdatabseに保存しようとしています。しかし、私はこれまで成功していません。C#3.0 MemoryStreamを使用してitextsharp pdfをデータベースに保存
私は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;
それはエラーをスローしませんが、それはDBには何も保存しません。 DBフィールドは、「イメージ」フィールドタイプです。 私はこのコードを使って、即座にpdfをレンダリングします(バイト[] pdfDone ...を切り捨て、MemoryStreamを返します)。
私は何が間違っているのかわかりません...そしてデバッグすると、byte [] pdfDoneに値(3487など)がありますが、DBには何も保存されていません。
ありがとうございます!
そこには*データベースコードがありません。また、手動で閉じるのではなく、 'using'ステートメントを使うことをお勧めします。それを超えると、実際にはitextsharpの問題のように聞こえます。 –
残念ながら、iTextSharpはIDisposableを実装していませんが、データベースコードが不足していることに同意します。 –
このコードは、保存するバイトの配列を返すメソッドの一部です。データベースコードはここには表示されておらず、コードは正しいです。私はそのエラーを発見した。それは私が使っていた取引であった。あなたの返信をありがとう。 – AndreMiranda