11

Webforms 页面代码背后

        XSettings.InstallRedistributionLicense("REDACTED");
        var theDoc = new Doc();
        theDoc.HtmlOptions.Engine = EngineType.Gecko;
        theDoc.Rect.Inset(72, 144);
        theDoc.Page = theDoc.AddPage();
        int theID = theDoc.AddImageUrl("http://www.woot.com/");
        while (true)
        {
            theDoc.FrameRect(); // add a black border
            if (!theDoc.Chainable(theID))
                break;
            theDoc.Page = theDoc.AddPage();
            theID = theDoc.AddImageToChain(theID);
        }
        for (int i = 1; i <= theDoc.PageCount; i++)
        {
            theDoc.PageNumber = i;
            theDoc.Flatten();
        }
        Response.Buffer = false;
        Response.AddHeader("Content-Disposition", "inline; filename=\"rept.pdf\"");
        Response.ContentType = "application/pdf";
        theDoc.Save(Response.OutputStream);
        Response.Flush();

应该工作得很好..但是得到

      Failed to add HTML: RPC to Gecko engine process failed.Remote process terminated unexpectedly.

在 bin 文件夹中运行完全信任

  • XULRunner 文件夹和 C:\Program Files (x86)\WebSupergoo\ABCpdf .NET 9.0\ABCGecko 中的所有内容
  • ABCGecko.dll
  • ABCpdf.dll
  • ABCpdf9-32.dll

打包/发布 Web 此项目文件夹中的所有文件

4

2 回答 2

7

您不得在Windows Azure 网站内运行外部进程,因为这会对共享基础架构造成风险。

请参阅MSFT 员工的这篇文章同一员工谈论与本机 API 相关的其他限制的文章。

您可以通过不将 HTML 图像添加到文档中来验证问题是否与外部启动的Gecko有关。对我来说,PDF 的创建取得了进一步的进展,但由于缺少许可证而失败。

看起来您必须找到一个完全托管的/.NET HTML 渲染引擎(如果将网站转换为 PDF 是您的用例),或者希望保留模式的网站获得执行本机/外部进程的权利。

于 2012-12-04T23:16:28.843 回答
2

这里有完整的 ABCpdf Azure 部署指南:

http://www.websupergoo.com/support-azure-abcpdf.htm

于 2014-03-06T17:24:23.000 回答