我已经构建了为用户查看的报告生成pdf文件的功能。
所以它目前所做的是当用户点击打印pdf按钮时
<html>
,<body>
等。此外,我还添加了一些样式。这一切都很好。
问题是
在获取div的内容之后,对字符串进行一些更改以直接在新窗口中显示为pdf内容等以避免服务器处理,这是可能的吗?
到目前为止,我已尝试直接使用data:application/pdf
显示内容,但这不起作用。
如果无法做到这一点,我打算避免保存pdf文件但只显示将以pdf格式打开的视图,可以设置为content-type
,这可能吗?
答案 0 :(得分:2)
你所做的是最好的方法。 (所有)浏览器无法将html转换为pdf,因此您不能只是命令它们以PDF格式打开页面。您必须从服务器提供pdf文件。要获得更多控制权,您可以从指定网址的脚本提供文件并添加适当的标头:
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"'); // second parameter is the name of the file
内容类型表示浏览器会尝试使用适合此MIME类型的程序打开它。 内容处理内联意味着浏览器将尝试在浏览器中打开它。
当服务器工作时,只向用户显示“加载”图像。这样,用户就会知道发生了什么,他需要等待。