asp.net - 在 .NET 应用程序上使用 Phantom JS 生成 PDF

标签 asp.net asp.net-mvc phantomjs

我一直在研究 phantomJS,看起来它可能是使用生成 PDF 的好工具。我想知道是否有人成功地将它用于他们的 .NET 应用程序。
我的具体问题是:你将如何使用像 rasterize.js 这样的模块?在服务器上,接收请求并将生成的 pdf 作为响应发回。
我的一般问题是:在 .NET 应用程序中使用 phantomJS 是否有任何最佳实践。实现它的最佳方法是什么?
我在 .NET World 中相当新,我会很感激更详细的答案。谢谢大家。 :)

最佳答案

如果您愿意使用 NReco.PhantomJS ,它为 PhantomJS 提供了一个 .NET 包装器,您可以非常简洁地做到这一点。

public async Task<ActionResult> DownloadPdf() {
    var phantomJS = new PhantomJS();
    try {
        var temp = Path.Combine(Path.GetTempPath(),
            Path.ChangeExtension(Path.GetRandomFileName(), "pdf")); //must end in .pdf
        try {
            await phantomJS.RunAsync(HttpContext.Server.MapPath("~/Scripts/rasterize.js"),
                new[] { "https://www.google.com", temp });
            return File(System.IO.File.ReadAllBytes(temp), "application/pdf");
        }
        finally {
            System.IO.File.Delete(temp);
        }
    }
    finally {
        phantomJS.Abort();
    }
}

关于asp.net - 在 .NET 应用程序上使用 Phantom JS 生成 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19646375/

相关文章:

javascript - 如何在 jQuery DataTable 的 AJAX 调用上传递额外参数

c# - 在 C# MVC 的表单验证中使用外键对象

installation - 在 Mac 上安装 PhantomJS

python - 使用 Selenium RemoteWebDriver 运行 PhantomJS 时出错

c# - 在以下情况下使用静态方法访问数据库是否安全

c# - 使用 ASP.NET 在 IE8 中通过 https 下载文件

javascript - 在 JavaScript 中访问 session 变量

javascript - CasperJS scraper无法通过选择器检索内容

C# IQueryable - 如何查询另一个列表中的列表

c# - 预填充表单时避免触发验证