Я думаю, что ваша проблема заключалась в том, что вы неправильно добавляли контент в свой PDF. Это делается с помощью метода Document.Add (), и вы заканчиваете, вызывая Document.Close ().
Однако, когда вы вызываете Document.Close (), ваш MemoryStream также закрывается, поэтому вы не сможете записать его в свой FileStream, как у вас. Вы можете обойти это, сохраняя содержимое вашего MemoryStream в байтовом массиве.
У меня работает следующий фрагмент кода:
using (MemoryStream myMemoryStream = new MemoryStream()) {
Document myDocument = new Document();
PdfWriter myPDFWriter = PdfWriter.GetInstance(myDocument, myMemoryStream);
myDocument.Open();
// Add to content to your PDF here...
myDocument.Add(new Paragraph("I hope this works for you."));
// We're done adding stuff to our PDF.
myDocument.Close();
byte[] content = myMemoryStream.ToArray();
// Write out PDF from memory stream.
using (FileStream fs = File.Create("aTestFile.pdf")) {
fs.Write(content, 0, (int)content.Length);
}
}