【发布时间】:2017-01-31 08:11:01
【问题描述】:
我正在尝试将 ABCpdf PDF 生成器配置为在 Azure 应用程序服务中运行,我可以让它生成一个简单的 Hello World pdf,但是当我尝试使用他们的 Gecko 引擎将 html 转换为 pdf 时,我从来没有得到回复。
来自 Azure 的响应是 500 request timed out。
这是 Hello World 代码:
public FileResult HelloWorld()
{
activateLicense();
Doc doc = new Doc();
doc.AddText("Hello World");
byte[] data = doc.GetData();
return File(data, "application/pdf", "hw.pdf");
}
这是 html 到 PDF 的代码:
public FileResult GooglePDF()
{
activateLicense();
byte[] pdfbytes;
using (Doc theDoc = new Doc())
{
theDoc.HtmlOptions.Engine = EngineType.Gecko;
theDoc.AddImageUrl("http://google.com");
pdfbytes = theDoc.GetData();
}
return File(pdfbytes, "application/pdf", "GoogleHomepage.pdf");
}
示例:
http://abcpdfazure.azurewebsites.net/
源码:
https://github.com/andyrblank/ABCpdfAzure
关于这个问题是这个问题的重复: ABCpdf .NET with Azure App Service
在我的问题中,根本区别在于我使用的是 Gecko 引擎而不是 MSHtml 引擎。 Gecko 引擎不需要修改 Windows 注册表或在主机上安装 Internet Explorer。
引擎文档:http://www.websupergoo.com/helppdfnet/source/5-abcpdf/xhtmloptions/2-properties/1-engine.htm
我确实从制造商那里获得了有关 ABCpdf 如何工作的其他信息:
ABCGecko 在进程池中运行,因此我们需要能够生成 worker 进程
我相信这是指使用 XULRunner 文件夹中的 Gecko/Firefox 渲染引擎的 ABCGeckoWP.exe 文件。我不确定这在 Azure 中是否可行,或者是否有人有解决方法。
【问题讨论】:
标签: .net azure pdf model-view-controller abcpdf