我得到了一项任务,看看我是否可以制作能够生成一些PDF文件供最终用户查看的电源应用程序。 后通过对这个课题的研究,我发现,这不是一个容易实现:) 为了使电力应用产生和下载/显示生成的PDF我提出下列步骤操作:电力应用程序 - 生成PDF
- 创建只有电源应用一个键:)从步骤2调用Azure的功能
- 创建Azure的功能,将产生和StreamContent
返回PDF由于电源应用的限制(或我简直找不到路),有没有办法对于我来说,从电源应用程序内的响应得到PDF。 之后,我改变了我的Azure功能来创建新的blob条目,但知道我有问题,以获得Azure功能内的新条目的URL,以便将其返回给电源应用程序,然后使用内部电源应用程序下载功能
我的Azure的功能代码如下
using System;
using System.Net;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using Aspose.Words;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log, Stream outputBlob)
{
log.Info($"C# HTTP trigger function processed a request. RequestUri={req.RequestUri}");
var dataDir = @"D:/home";
var docFile = $"{dataDir}/word-templates/WordAutomationTest.docx";
var uid = Guid.NewGuid().ToString().Replace("-", "");
var pdfFile = $"{dataDir}/pdf-export/WordAutomationTest_{uid}.pdf";
var doc = new Document(docFile);
doc.Save(pdfFile);
var result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(pdfFile, FileMode.Open);
stream.CopyTo(outputBlob);
// result.Content = new StreamContent(stream);
// result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
// result.Content.Headers.ContentDisposition.FileName = Path.GetFileName(pdfFile);
// result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
// result.Content.Headers.ContentLength = stream.Length;
return result;
}
我离开旧代码(就像什么我想引用该流的PDF背下的评论之一)
有没有什么办法让下载网址为新生成的斑点进入Azure函数里面? 有没有更好的方式让电源应用生成并下载/显示生成的PDF?
P.S.我试图用电源内部应用程序PDF查看器控制,但这种控制是完全无用的原因你无法通过功能
编辑设置文件值:从@mathewc响应帮了我很多,终于包装这件事。所有细节如下。 Azure的新功能,如预期
#r "Microsoft.WindowsAzure.Storage"
using System;
using System.Net;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using Aspose.Words;
using Microsoft.WindowsAzure.Storage.Blob;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log, CloudBlockBlob outputBlob)
{
log.Info($"C# HTTP trigger function processed a request. RequestUri={req.RequestUri}");
var dataDir = @"D:/home";
var docFile = $"{dataDir}/word-templates/WordAutomationTest.docx";
var uid = Guid.NewGuid().ToString().Replace("-", "");
var pdfFile = $"{dataDir}/pdf-export/WordAutomationTest_{uid}.pdf";
var doc = new Document(docFile);
doc.Save(pdfFile);
var result = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new FileStream(pdfFile, FileMode.Open);
outputBlob.UploadFromStream(stream);
return req.CreateResponse(HttpStatusCode.OK, outputBlob.Uri);
}
的作品备注:
- 嫣需要添加 “WindowsAzure.Storage”: “7.2.1” 内部project.json。这个包MUST是同一版本作为一个与在相同的名称%USERPROFILE%\应用程序数据\本地\ Azure.Functions.Cli
干得好!我有一个类似的问题。你对PowerApp中的URI做了什么?安全性如何工作?我会检查下面的链接以及:-) – MikeAinOz