gpt4 book ai didi

c# - 使用 rotativa 创建 pdf 并保存到 Azure blob

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:41 25 4
gpt4 key购买 nike

我正在尝试在我的 MVC 项目中创建我的 View 的 pdf 并将其保存到 Azure blob 存储,而我的服务器上没有该文件的副本。

我正在使用 Rotativa 创建我的 pdf,这工作正常。

return new ActionAsPdf(ContractVersion) { FileName = "documentname.pdf" };

我使用以下代码将文件保存到 Azure 存储。

  CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference("contracts");

// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");

// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"c:\test blob.txt"))
{
blockBlob.UploadFromStream(fileStream);
}

但我不知道如何将这两个函数组合在一起以从 View 创建 pdf,然后保存到 blob。

我希望我的问题很清楚。感谢期待。

最佳答案

我在 Controller 方法中使用 MVC5 局部 View 实现了它,为了清楚起见,我对其进行了缩写,并且没有显示返回 blob 对象的 Azure 服务对象,因为这是标准的 MS 内容。就像款待一样!

  1. 从 Rotativa 返回 pdf;
  2. 使用“BuildPdf”转换为字节数组;
  3. 放入内存流中;
  4. 使用 Blob 对象上的 UploadFromStream 上传到 Azure Blob

    var file = new Rotativa.PartialViewAsPdf("viewname", model) { FileName = "test"+ ".pdf"};
    byte[] applicationPDFData = file.BuildPdf(this.ControllerContext);
    流 stream = new MemoryStream(applicationPDFData);
    blob.UploadFromStream(流);

关于c# - 使用 rotativa 创建 pdf 并保存到 Azure blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39122076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com