鉴于环境问题(将其视为事实):
1)Rotativa PDF(https://github.com/webgio/Rotativa)使用exe来创建PDF,因此它不适用于azure网站(无权执行该exe)
2)ABCPdf有同样的问题
3)EO.Pdf有类似的问题(“使用Windows GDI但Windows Azure WebSite不支持Windows GDI”,http://www.essentialobjects.com/doc/4/install/deploy.aspx)
4)我不想拥有Azure Cloudapp(允许我使用Rotativa或ABCPdf)。 我的Azure网站很好(除了以前的问题)。
有替代解决方案吗?
是否还有其他用于从HTML创建可以在Azure网站(不是CloudService或VM)上运行的PDF的库?
更新nov-2014:
我现在正在使用 MvcRazorToPdf ,这很棒。
控制器代码:
return new PdfActionResult(palletReception, (writer, document) =>
{
document.SetPageSize(new Rectangle(792f, 612f));
document.NewPage();
})
{
FileDownloadName = "foo.pdf"
};
查看代码:
A normal view with normal css. Must be accepted by iText XMLWorker Check this: http://demo.itextsupport.com/xmlworker/itextdoc/flatsite.html and this: http://demo.itextsupport.com/xmlworker/
答案 0 :(得分:1)
您可以利用iTextSharp(http://sourceforge.net/projects/itextsharp/)。过去使用它非常成功。它现在甚至可以作为nuget包使用 - https://www.nuget.org/packages/itextsharp/。
答案 1 :(得分:0)
这项任务是否适合WAWS?
Windows Azure网站是不占用大量处理时间的应用程序的绝佳平台。但是WAWS可能不是处理器密集型工作的最佳选择,例如将网页转换为PDF。下载和呈现网页可能需要几秒钟,生成PDF文档会消耗更多。如果你不幸遇到一两次超时(就像这样会发生),你的WAWS帐户上的任何处理配额都会瞬间消失。当超过上限时,网站会发生什么?
据我了解,免费和共享的WAWS等级受制于处理上限。我不确定这是否也会影响标准层。任何人吗?
如果您的WAWS网站必须使用网页转换为PDF,我建议您将其与工作者角色结合使用,或者仅使用Web角色(云服务)。另一个优点是您可以将多个WAWS站点连接到单个辅助角色,这可能有助于降低许可成本并节省部署和维护站点的时间。