Php TCPDF在IE8中输出奇怪的字符
今天我开始试验基于PHP的PDF生成器。我试过TCPDF,它在大多数情况下都很好,尽管它似乎有点慢。但是当我在InternetExplorer8中加载生成PDF的PHP文件时,我看到一行行奇怪的字符。然而,Chrome将其识别为PDF 我假设我必须设置一个特殊的MIME类型来告诉IE它应该将页面输出解释为PDF文件。如果是,我该怎么做?放置“application/pdf”或“application/octet-stream”mime类型可能会有所帮助。请记住,“应用程序/八位字节流”将强制下载该文件,并可能阻止其在浏览器中打开 如果你想知道,你可以这样做:Php TCPDF在IE8中输出奇怪的字符,php,internet-explorer,tcpdf,Php,Internet Explorer,Tcpdf,今天我开始试验基于PHP的PDF生成器。我试过TCPDF,它在大多数情况下都很好,尽管它似乎有点慢。但是当我在InternetExplorer8中加载生成PDF的PHP文件时,我看到一行行奇怪的字符。然而,Chrome将其识别为PDF 我假设我必须设置一个特殊的MIME类型来告诉IE它应该将页面输出解释为PDF文件。如果是,我该怎么做?放置“application/pdf”或“application/octet-stream”mime类型可能会有所帮助。请记住,“应用程序/八位字节流”将强制下载
header('Content-type: application/octet-stream');
放置“application/pdf”或“application/octet-stream”mime类型可能会有所帮助。请记住,“应用程序/八位字节流”将强制下载该文件,并可能阻止其在浏览器中打开
如果你想知道,你可以这样做:
header('Content-type: application/octet-stream');
对于动态生成的内容,您需要以不同的方式处理IE。看这篇文章, 在我的代码中,我这样做
if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) {
header('Content-Type: application/pdf');
exit;
}
这个问题也可以解释你提到的速度慢,因为你的页面实际上多次发送整个PDF,而没有这个逻辑。对于动态生成的内容,你需要以不同的方式处理IE。看这篇文章, 在我的代码中,我这样做
if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) {
header('Content-Type: application/pdf');
exit;
}
这个问题也可以解释你提到的速度慢,因为你的页面实际上在没有这种逻辑的情况下多次发送整个PDF。@Pieter:我在使用tcpdf(使用fpdi)时遇到了同样的问题,并且加载了使用ajax调用生成PDF的页面。我改变了javascript,改为使用window.location加载页面,问题就解决了,性能也提高了很多。我相信其他两张海报的想法是正确的,即文件标题导致了问题。在我的例子中,由于ajax调用,标题没有应用于整个文档,从而导致了问题。希望这能有所帮助。@Pieter:我在使用tcpdf(使用fpdi)时遇到了同样的问题,并且加载了使用ajax调用生成pdf的页面。我改变了javascript,改为使用window.location加载页面,问题就解决了,性能也提高了很多。我相信其他两张海报的想法是正确的,即文件标题导致了问题。在我的例子中,由于ajax调用,标题没有应用于整个文档,从而导致了问题。希望这有帮助。我发现这也是一个问题,对我来说,这一切都取决于代码:
if (php_sapi_name( != 'cli') {
在tcpdf.php文件的第7249行。我对这个“if”语句(以及相关的“}”)进行了注释,所有这些都可以很好地用于我的其他浏览器和ie8
希望这有帮助我发现这也是一个问题,对我来说,这一切都取决于代码:
if (php_sapi_name( != 'cli') {
在tcpdf.php文件的第7249行。我对这个“if”语句(以及相关的“}”)进行了注释,所有这些都可以很好地用于我的其他浏览器和ie8
希望这有帮助我也有这个问题,但我所做的是让它工作,我补充说
exit();
在pdf输出的末尾。我也遇到了这个问题,但我做了些什么来让它工作呢
exit();
在pdf输出的末尾