使用TCPDF在ASP.NET MVC中生成PDF

时间:2012-06-15 14:13:02

标签: c# asp.net-mvc pdf-generation tcpdf

基本上我的建议是生成带有图表,图像和一些样式的动态PDF到视图或部分视图中供用户打印或选择下载。

我以前使用过TCPDF,所以想知道是否有办法利用我的TCPDF php文件将生成的PDF传递给视图?

我也看过ITextSharp,但我担心缺乏自定义,包括TCPDF过去为我提供的动态图表。

有人能指出我正确的方向吗?目前我正在尝试为Visual Studio 2010安装VS.PHP模块,希望我可以将生成的TCPDF文件加载到内存流中并将其传递给视图(内联)。

我的逻辑完全错了吗?请指教。

感谢。

[编辑]

我已将Phalanger(http://phalanger.codeplex.com/)添加到我的项目中,并在我的Content / reports文件夹中添加了一些tcpdf示例。

我的控制器代码非常简单(我从Phalanger论坛的另一篇文章中获得了大部分内容):

        public ActionResult SummaryReport()
    {
        var context = PHP.Core.ScriptContext.CurrentContext;

        using (var request_context = PHP.Core.RequestContext.Initialize(PHP.Core.ApplicationContext.Default, System.Web.HttpContext.Current))
        {
            var output = request_context.ScriptContext.Include(Server.MapPath(Url.Content("~/Content/reports/testoutput.php")), false);

            return Content("");
        }
     }

但是,当控制器尝试执行TCPDF示例时,我现在正在接收TCPDF错误:

Warning: preg_match(): Invalid argument 'pattern':     u0192\u2039\u008D\u203A\u017E\u0178\u00A1-\u00BA] # AL | Ù[\u20AC-\u0160\u00AD-\u00AF\u00B1-\u00BF] # AL | Ú[\u20AC-\u00BF] # AL | Û[\u20AC-\u2022\u009D\u00A5\u00A6\u00AE\u00AF\u00BA-\u00BF] # AL | Ü[\u20AC-\u008D\u0090\u2019-\u00AF] # AL | Ý[\u008D-\u00AD] # AL | Þ[\u20AC-\u00A5\u00B1] # AL | ï­[\u0090-\u00BF] # AL | ï®[\u20AC-\u00B1] # AL | ï¯[\u201C-\u00BF] # AL | ï[\u00B0-\u00B3][\u20AC-\u00BF] # AL | ï´[\u20AC-\u00BD] # AL | ïµ[\u0090-\u00BF] # AL | ï¶[\u20AC-\u008F\u2019-\u00BF] # AL | ï·[\u20AC-\u2021\u00B0-\u00BC] # AL | ï¹[\u00B0-\u00B4\u00B6-\u00BF] # AL | ïº[\u20AC-\u00BF] # AL | ï»[\u20AC-\u00BC] ..." - [x-y] range in reverse order. in (MYPATH)\Content\reports\tcpdf\tcpdf.php on line 15859, column 7.

Warning: preg_match(): Invalid argument 'pattern': [x-y] range in reverse order. in (MYPATH)\Content\reports\tcpdf\tcpdf.php on line 15865, column 7.

有谁知道如何克服这个问题?我最近可能会在TCPDF论坛上发布最新的TCPDF。我担心如果我不能使这些工作,我将导致使用.NET PDF库,因为我受到严格的时间限制。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

你看过ABCpdf了吗? 它似乎是适合您的解决方案:)

ps:链接包含在我的评论中