基本上,我在建议将带有图表、图像和一些样式的动态 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 库,因为我受到严格的时间限制。
谢谢你的时间。