1

我正在使用 abcPDF 来动态创建 PDF。

我想保存这些 PDF 供客户随时检索。最简单的方法(以及我现在在当前服务器上所做的方法)是简单地将完成的 PDF 保存到文件系统中。

似乎我坚持使用 blob。幸运的是 abcPDF 可以保存到流和文件中。现在,如何将流连接到 blob?我找到了显示 blob 采用如下流的代码:

blob.UploadFromStream(theStream, options);

abcPDF 函数如下所示:

theDoc.Save(theStream)

我不知道如何弥合这个差距。

谢谢!布拉德

4

2 回答 2

4

作为不需要将整个文件保存在内存中的替代方法,您可以尝试以下操作:

using (var stream = blob.OpenWrite())
{
    theDoc.Save(stream);
}

编辑

在这里添加一个警告:如果该save方法需要可搜索的流,我认为这不会起作用。

于 2012-08-31T06:41:46.240 回答
1

鉴于这种情况并且不知道 abcPdf 的 Save() 方法的完整重载列表,您似乎需要一个 MemoryStream。就像是:

using(MemoryStream ms = new MemoryStream())
{
    theDoc.Save(ms);
    ms.Seek(0, SeekOrigin.Begin);
    blob.UploadFromStream(ms, options);
}

这将完成这项工作。但是,如果您正在处理大文件,并且您预计会有大量流量(大量同时创建的 PDF),您可能只需要一个临时文件。将 PDF 写入临时文件,然后立即上传 Blob 的临时文件。

于 2012-08-30T19:22:50.423 回答