【发布时间】:2013-04-19 13:03:42
【问题描述】:
我已经构建了为用户查看的报告生成 pdf 文件的功能。
所以它当前所做的是当用户点击打印 pdf 按钮时
- 获取需要打印的div的html内容
- 使用带有 POST 的 jquery ajax 方法将此内容发送到控制器的方法
- 在控制器中,它使用 html 文档字符串(如
<html>、<body>等)包装内容。此外,我还在那里添加了一些样式。 - 然后将此 html 字符串传递给我正在使用的工具之一,该工具会为我返回此字符串的 pdf 字节
- 然后它将这些字节保存为文件夹中的 pdf 文件并返回该文件的路径。
- Jquery then on success 方法打开此文件路径的窗口。
一切正常。
问题是
- 它不会立即打开窗口,因为它会执行所有处理,然后在成功时打开窗口
- 另外我想知道我是否正确地执行了这一切或执行了一些额外的不必要的步骤,我的意思是有没有更好的方法或短的方法来做到这一点。
获取div的内容后,对字符串进行一些更改,直接在新窗口中显示为pdf内容等,以避免服务器处理,这可能吗?
到目前为止,我一直尝试使用data:application/pdf 直接显示内容,但没有成功。
如果这是不可能的,我想避免保存 pdf 文件,而只是显示将以 pdf 格式打开的视图,可能是通过设置其 content-type,这可能吗?
【问题讨论】:
标签: javascript asp.net-mvc-3 pdf-generation