[英]Create PDF with DOMPDF and Redirect
在一个PHP项目中,我需要创建一个PDF文件并在用户单击“提交”按钮时重定向到另一个页面。 我设法使用DOMPDF创建了pdf文件。 PDF创建是在单独的文件('PDFRecipt.php')
。 当用户单击主页上的按钮时,我已调用该页面。 这就是调用PDF页面的方式
header('location:PDFRecipt.php');
但是问题是当我通过调用PDF页面后尝试重定向时
header('location:Other.php');
它不会创建PDF(仅重定向)。 我尝试更改header('location:PDFRecipt.php');
包括include_once('PDFRecipt.php');
则无法正确创建PDF(PDF文件损坏)
如何创建PDF文件并重定向到其他页面?
编辑:
PDFRecipt.php
代码
$html='SOME HTML';
include("../../dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream('FileName.pdf');
//header('location:Other.php);
为此,您需要将第二个header
调用移到PDFRecipt
文件中。 目前,它们都在一个文件中,您对header
的第二次调用将覆盖第一个。
请记住,在将输出发送到用户浏览器时会发送标头,这就是为什么您经常看到人们在header('Location: http://example.org');
之后直接调用exit()
header('Location: http://example.org');
。
因此,任何后续的设置相同标头的调用(在本例中为Location
)将覆盖第一个,直到发送标头为止。
还值得指出的是,您应该在Location
使用完整的Web URL:
HTTP / 1.1需要绝对URI作为»位置的参数:包括方案,主机名和绝对路径,但是某些客户端接受相对URI。 通常,您可以使用$ _SERVER ['HTTP_HOST'],$ _ SERVER ['PHP_SELF']和dirname()从您自己的亲戚那里创建绝对URI
根据手册的header
页: http : //php.net/manual/en/function.header.php
因此,您正在使用stream()
方法向客户端发送PDF-您无法将其与Location:
标头结合使用。 这是因为DOMPDF已经将内容刷新到屏幕了。 我以为您的PDFRecipt.php
文件将PDF存储到磁盘上的某个地方。
有关更多详细信息,请参见DOMPDF源代码: http : //code.google.com/p/dompdf/source/browse/trunk/dompdf/lib/class.pdf.php#3061
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.