将字符串内容写入PDF

Writing string content as PDF

本文关键字:PDF 字符串      更新时间:2023-09-26

我已经构建了为用户查看的报告生成pdf文件的功能。

所以它现在做的是当用户点击打印pdf按钮时它

  1. 获取需要打印的div的html内容
  2. 发送这个内容到控制器的方法使用jquery ajax方法POST
  3. 在控制器中,它用html文档字符串包装内容,如<html>, <body>等,我在那里添加了一些样式。
  4. 然后这个html字符串被传递给我正在使用的一个工具它为这个字符串返回pdf字节
  5. 然后将这些字节保存为pdf文件,并返回该文件的路径。
  6. Jquery然后在成功方法打开这个文件的路径窗口。

一切正常。

问题是

  1. 它不会立即打开窗口,因为它做了所有的处理,然后在成功时打开窗口
  2. 加上我想知道我是否做这一切都是正确的或做一些额外的不必要的步骤,从这个我的意思是有任何更好的方法或短的方法来做到这一点。

得到div的内容后,对字符串做一些改变,直接显示在新的窗口作为pdf内容等,以避免服务器处理,这是可能的吗?

到目前为止,我一直试图用data:application/pdf直接显示内容,但没有工作。

如果这是不可能的,我想避免保存pdf文件,但只是显示将打开为pdf的视图,可能是通过设置其content-type,这是可能的吗?

你所做的是最好的方法。(所有)浏览器都不具备将html转换为pdf的功能,所以你不能命令它们以pdf格式打开页面。您必须从服务器提供pdf文件。为了获得更多的控制,您可以在指定的url上从脚本提供文件,并添加适当的头:

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"'); // second parameter is the name of the file

内容类型表示浏览器将尝试使用适合此MIME类型的程序打开它。内容内联处理意味着浏览器将尝试在浏览器中打开它。

当服务器正在工作时,只向用户显示"正在加载"的图像。这样用户就会知道发生了什么事情,他需要等待。