2017-06-22 64 views
-1

我需要从word模板生成pdf文档并以附件形式发送电子邮件。我们计划将这些功能作为Azure Service Fabric中的一种微服务进行开发。我们已经在一个正常的ASp.NET Web Api应用程序中使用Aspose.Words for .NET完成了POC,并且它工作正常。现在我需要使它在Azure Service Fabric中工作,可能是在无状态的Web API服务中。由于它是一个Azure虚拟机,SF有沙箱环境,所以我有以下查询 1)是否有可能在SF中执行此类操作,因为此库要求应用程序在Windows Azure完全信任下运行。 https://docs.aspose.com/display/wordsnet/About+Aspose.Words+and+Windows+Azure在Azure服务结构中执行docx到pdf的转换

2)是否可以访问SF中的文件系统,因为我需要在发送电子邮件附件之前临时保存pdf。

3)SF是否是执行此操作的正确位置,还是我需要考虑Azure Web App?

由于我找不到任何与此相关的示例,所以来自SF专家的任何反馈都将有所帮助。

+0

3)IMO,no。因此另外两个问题不需要答案。你有什么想法可以让你认为ASF是一个很好的选择?设置一个ASF集群来处理文档转换看起来很麻烦。 –

+0

嗨,彼得。我有一些在SF Cluster中运行的REST服务(无状态Web Api SF模板)作为微服务(不是纯粹的播放)。现在,他们中的一个需要以pdf格式生成收据并将其作为电子邮件发送。我可以创建一个Azure Web App并尝试相同的方式。我已经有一个虚拟机已经集群,因此想过尝试一样。 – Sajan

+0

也许天青的功能是一种可行的方法。便宜,规模好。 –

回答

0

关于1)和2),你只需要在Windows Azure的完全信任运行你的应用程序,因为使用Aspose.Words需要列举和读取TrueType字体被安装在机器上。或者,如果您无法在完全信任上运行应用程序,则可以指定自己的文件夹,其中Aspose.Words将查找字体并将字体放置在该文件夹中。有关如何实现此目的的详细信息,请参见How-to: Specify True Type Font Location article

其次,而不是暂时保存PDF文件系统,您可以通过使用下面的代码保存里面存储:

Document doc = new Document(); 
MemoryStream pdfStream = new MemoryStream(); 
PdfSaveOptions opts = new PdfSaveOptions(); 
doc.Save(pdfStream, opts); 

我的Aspose工作为开发者传播者。

+0

您好,Awais,谢谢您的回复。我能够通过Aspose.Words报告引擎从Word模板生成pdf,并通过Azure App Service发送带有pdf附件的电子邮件。是的,而不是保存到内存,我保存到内存流并通过SendGrid云服务发送电子邮件。我仍在寻找在Service Fabric应用程序中是否可以实现这一点。你知道的任何案例研究? – Sajan

+0

我担心,我不知道有关服务结构应用程序的任何案例研究。你可以尝试一下。或者,您也可以尝试[Aspose.Words for Cloud](https://www.aspose.com/products/words/cloud)REST API。我以开发者传播者的身份与Aspose合作。 –