0
我正在使用iTextSharp
生成PDF
,并且不想在S3中将其保存到存储桶中。我不断收到像这样的错误“无法访问封闭的流”。MemoryStream关闭错误
using (MemoryStream ms = new MemoryStream())
{
PdfWriter outputWriter = PdfWriter.GetInstance(newPDF, ms);
newPDF.Open();
PdfContentByte cb1 = outputWriter.DirectContent;
for (int pagesToAddFromSourcePDFToNewPDF = 0; pagesToAddFromSourcePDFToNewPDF < soa_total_pages; pagesToAddFromSourcePDFToNewPDF++)
{
if (pagesToAddFromSourcePDFToNewPDF > 0)
{
currentPageInSourcePDF++;
}
newPDF.NewPage();
PdfImportedPage page = outputWriter.GetImportedPage(sourcePDF, currentPageInSourcePDF);
cb1.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
filesCreated++;
// Upload stream to AWS
ms.Position = 0;
using (var transferUtility = new TransferUtility(client))
{
transferUtility.Upload(ms, "mybucketname", "1/soa/" + newPDFFilename); // ERROR IS THROWN HERE
}
newPDF.Close();
}
任何想法?
/鲍勃
看来iTextSharp会自行关闭流。发生异常的地方在哪里? –
如果我把手表放在MS上,我会发现执行transferUtility()时会抛出异常。但是,在它实际跳转到catch句柄之前,代码会下降到newPDF.Close()。 –
请注意,如果我使用FileStream,它就像一个魅力。但那是我在本地保存以进行测试的时候。 –