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